使用 Linux screen 来在远程服务器上训练

一般连接服务器,通过 VNC 或者 SSH 连接,都有一个问题:

就是本机关机或者网络连接断掉时,服务器上的进程会被阻断。

训练一个稍微大点的神经网络往往需要好几天,本机很难一直开着,这时候就需要 Linux screen

Linux screen 主要用于创建可以后台挂起的 session,这样即使本机关机,也只会阻断服务器上与本机在线的进程,不会阻断与与本机离线的进程。

参考:
https://blog.csdn.net/Lifereunion/article/details/123636487
https://blog.csdn.net/weixin_44612221/article/details/126279971

首先在本机打开终端 SSH 连接服务器或者 VNC 里打开终端。

screen -S <sessionName> // 创建一个session,然后会进入该session
screen -ls // list 已有的session
ctrl+a+d // 在session里按这个表示使当前session detached
exit // session里输这个表示杀死该session
screen -r <sessionName> // 回到datached 的session
screen -X -S <sessionName> quit // 在session外杀死一个session
screen -x // 恢复上一个离线的作业。

下面是一个例子:

screen -S test // 进入test session
screen -ls // list 所有的 session
python main.py // 跑一个耗时较长的python程序
ctrl+a+d // detach session
本地关机
本机开机
screnn -r test // 恢复test这个session,如果有多个test,需要加上编号,-ls 后可以看到编号,如 411893.test
exit // 跑完了程序,杀死 test 这个 session

如果本机要关机或者断网,使要运行的会话 detached 即可。

打开 screen 后无法使用滚动条:
https://blog.csdn.net/CalvinHXM/article/details/131823976

posted @ 2023-03-18 13:19  Cold_Chair  阅读(263)  评论(0编辑  收藏  举报