ubuntu下screen的使用
日常在通过SSH远程到服务器训练网络和深度学习的相关代码,经常需要花费很长的时间。利用SSH远程连接服务器,运行程序需要保证在此期间窗口不能关闭并且连接不能断开,否则当前窗口所运行的任务就被杀死。
尽管的深度学习的训练中,可以通过checkpoint保存训练过程的中间参数值,但利用screen命令,我们却可以实现当前窗口和任务的分离,即使在离线状态下,我们在服务器上的程序仍能在后台运行。重新登录到服务器后,读取窗口进程,就能连接到对应的程序窗口。
- 功能介绍
参考GNU's Screen 官网:GNU's Screen
- 主要使用
- 安装
首先可以先查看是否安装screen,通过命令
screen -ls
若出现
- 安装
The program 'screen' is currently not installed. You can install it by typing:
sudo apt install screen
说明尚未安装,安装提示,通过命令:
sudo apt install screen
安装screen
-
新建窗口
1)可直接通过命令screen
新建一个窗口,并进入窗口。但通过这种方式新建的窗口没有名字,只有系统分配给它的一个id。当需要恢复窗口时,只能通过id号来恢复。
2)通过命令screen -S name
,这样就可以新建一个名字为name的窗口,同样系统也会分配给它一个id,当恢复该窗口时既可以通过id号也可以通过窗口名。 -
分离会话
退出当前新建的窗口,通过快键键Ctrl+a+d实现分离,此时窗口会跳出[detached]的提示,并回到主窗口。 -
恢复会话窗口
首先查看当前有哪些screen窗口,通过命令:
screen -ls
将列出窗口列表
由以上可知,当前有两个窗口,其中test窗口已经被杀死,test2窗口分离。可以通过以下命令恢复test2窗口:
screen -r test2
或 screen -r 27582
这样就返回了test2窗口
-
杀死会话窗口
通过命令kill -9 threadnum
注意此处只能通过id号来杀死窗口。 -
清除死去窗口
通过命令screen -wipe
这个命令将自动清除所有处于dead状态的窗口
参考:
reference