学习记录: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_2screen -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