应用场景:
远程登陆Linux服务器运行模型训练代码,如果关闭本地终端则服务器代码中断运行!目标操作:在本地终端运行服务器代码,当关闭终端时代码能够继续在服务器上运行,且再次打开终端连接服务器时能找回正在运行/运行完成的代码环境。
解决方案:使用screen
1. 安装screen
pip3 install screen
或者:
sudo apt-get install screen
2. 创建screen会话 (会话名:test)
screen -S test
3. 在screen会话(会话名:test)中运行代码
python train.py
说明:
这里创建并进入名叫 “test” 的screen会话,
可使用 screen -ls 查看当前存在的screen会话
screen -ls
--16133.test(Attached)
“Attached” 表示这个screen会话是活动的。
其中 “16133.test” 的16133表示screen会话的进程号,test表示screen会话名。
4. 剥离screen会话
Ctrl+A+D (同时按键盘上的 Ctrl、A、D 三个键)
说明:此时可以关闭终端,让程序在服务器上继续运行了
5. 重新接入screen会话
(1) 查看当前存在的screen会话
screen -ls
--16133.test(Detached)
(2) 接入会话
screen -x 16133
或者
screen -r test
(3) 说明:
两种方法都可以,后面参数分别为进程号和会话名
6. 关闭所有screen会话
如果开了很多个screen同时工作,一个一个关闭比较麻烦,使用命令一次关掉要方便些
(1) 查看有多少个screen
screen -ls |awk '/Socket/'|awk '{print $1}'
(2) 如果有20个screen,关闭所有screen的命令为
screen -ls|awk 'NR>=2&&NR<=20{print $1}'|awk '{print "screen -S "$1" -X quit"}'|sh
原文链接:https://mp.weixin.qq.com/s/QvsGF2C6Vdg2n_o2omxinA
标签:screen,16133,会话,终端,Ubuntu,test,脱离,运行,ls From: https://www.cnblogs.com/peakgrin/p/17023773.html