侧边栏壁纸
  • 累计撰写 11 篇文章
  • 累计创建 12 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Ubuntu使程序脱离终端运行

Cx330
2024-10-17 / 0 评论 / 0 点赞 / 14 阅读 / 0 字

应用场景:

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

查看当前存在的screen会话

screen -ls--16133.test(Detached)

接入会话

screen -x 16133

或者

screen -r test

说明:

两种方法都可以,后面参数分别为进程号和会话名

关闭所有screen会话

如果开了很多个screen同时工作,一个一个关闭比较麻烦,使用命令一次关掉要方便些

查看有多少个screen

screen -ls |awk '/Socket/'|awk '{print $1}'

如果有20个screen,关闭所有screen的命令为

screen -ls|awk 'NR>=2&&NR<=20{print $1}'|awk '{print "screen -S "$1" -X quit"}'|sh

0

评论区