使用 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
转载注意标注出处:
转自Cold_Chair的博客+原博客地址