Ubuntu使程序脱离终端运行

应用场景:

远程登陆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

posted @   peakgrin  阅读(198)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
点击右上角即可分享
微信分享提示