学习记录:Screen的安装与使用方法(Ubuntu)
1.检查是否已安装 screen
我要在容器里使用 screen,因此先输入 docker exec -it LMB2 /bin/bash 进入名为 LMB2 的容器。再输入命令查看所有 screen 列表,判断是否安装 screen。
screen -ls
输出显示 bash: screen: command not found 说明容器内没有安装 screen。
.
2.安装 screen
安装相当简单,只需要 2 条命令即可安装。
也可以参考这篇文章
输入命令,更新软件源中的所有软件列表,此时会弹出一大堆东西,等它完成更新即可。
apt-get update
输入命令安装 screen,输入 y 继续安装。
apt-get install screen
这时也会打印出来很多安装信息,等待安装完成即可。
.
3.创建一个 screen 会话
输入命令创建一个 screen 会话,如:screen -S rfdnet_2
screen -S your_screen_name
可以看到输出隔了一行,说明此时已经进入 rfdnet_2 这个 screen 会话。
此时可以输入命令,列出所有的 screen:
screen -ls
可以看到此时刚刚创建的 “rfdnet_2” 会话正在处于连接状态(Attached)
由于已经进入 “rfdnet_2” 这个会话,现在可以在这个 screen 里可以运行任何程序。我运行了一个耗时的训练程序。
敲击回车后,我的训练程序开始运行…
.
4.断开与当前 screen 连接
断开连接,让服务器端继续运行任务:ctrl + a + d
这时直接就会从窗口内跳出来,所以刚刚在窗口内的训练任务的 print 都不见了,但这并不影响训练任务在服务器端的进行。
再次列出所有 screen:screen -ls
可以看到 “rfdnet_2” 右侧已经显示断开,这时候服务器端会运行你的程序,电脑与服务器断掉连接也可以,即使是你的电脑关机也不影响服务器端炼丹
.
5.恢复某 screen 会话
输入命令回到 screen 会话
screen -r [会话ID|会话名称]
回到指定会话,可以是会话名称,也可以是会话ID
如:screen -r rfdnet_2
或 screen -r 14828
如果遇到不能恢复的情况,如输入 screen -r
命令后,显示 “已经进入某 screen,没有要恢复的屏幕与 xxx 匹配。”
有可能是这个 screen 还在连接状态(上图可以看到后面写了Attached),这时输入命令断开这个 screen,再重新连接即可。
先断开与这个 screen 的连接,如:screen -d rfdnet_2
screen -d your_screen_name
再连接这个 screen,如:screen r rfdnet_2
screen -r your_screen_name
可以看到现在就可以正常连接screen会话并打印任务内容了
.
6.删除不需要的 screen
查看所有的 screen:screen -ls
现在想要删除名叫 invalid_screen 的 screen 会话
输入命令: screen -S invalid_screen -X quit
screen -S your_screen_name -X quit
再次查看 screen 列表,显示还剩 2 个 screen 会话,证明已经成功删除 invalid_screen 会话,整个过程如下图:
.
参考文献:
https://blog.csdn.net/Cheese_pop/article/details/78475013