在我们通过终端或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就看不到该会话了!

参考https://cloud.tencent.com/developer/article/1844735
参考https://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html