在我们通过终端或ssh连接服务器使用时候,有时候一个训练程序可能需要训练几天才能完成,但是我们的终端可能会在几个小时后自动断开,就会导致训练程序终止,解决方法就是使用screen工具
:
先介绍screen的简单功能使用
先介绍screen的简单功能使用,可以满足日常需求,就三个命令:
1、创建一个screen会话窗口
screen -S sessionWinName
eg:
screen -S testTime
然后就可以在该窗口下运行程序,如程序:
python test_cycle_time.py
然后把该窗口叉掉,此时程序并不会停止运行
2、查看我们用screen创建的会话
screen -ls
此时就可以查看到上面我们创建的会话窗口testTime
3、恢复会话窗口,就是继续查看我们后台运行的程序
screen -r testTime
或:
screen -r 10525
screen -r -S testScreen
常见问题:
1、session会话窗口显示为Attached
状态,恢复会话进时进不去,这是因为已经有一个用户登录了这个会话,所以需要先:踢掉前一用户,再登陆。
(参考)
screen -D -r <session-id>
1)在Attached状态下,按Ctrl+D 或输入exit,都会直接删除创建的会话,不能在激活!
2)在Attached状态下,直接叉掉终端,此时会话状态变成Detacted,表示挂起虚拟终端,如果此时有运行的程序也就变成在后端运行了,可以通过screen -r ID/session_name 重新打开会话!
3)在Attached状态下,按
Ctral+a
,再按d
,此时会退出并挂起虚拟终端(保存会话,后台运行该虚拟终端),此时会话状态变成Detacted- 4)在Attached状态下,按
Ctral+a
,再按k
(kill),此时会关闭对话,等同输入:exit - 5)在Attached状态下,按
Ctral+a
,再按c
(create):新建一个虚拟终端 - 6)在Attached状态下,按
Ctral+a
,再按?
:显示所有绑定键盘
在进入会话时,按Ctrl+D
或 输入exit 回车
就会退出,并删除会话,此时使用screen -ls
就看不到该会话了!