SSH远程连接服务器时,避免因断网导致程序终端执行,可使用screen指令

受疫情影响,我们如果需要用SSH连接远程服务器跑程序
如果执行的程序是诸如深度学习训练等需长时间跑完的程序
则可能会面临因“网络波动”导致的,程序执行中断
为了避免这个问题,我们今天介绍Ubuntu系统中的screen指令

在成功连接到服务器并登陆后,在命令行中切换到自己的环境
如我的环境是anaconda创建的名为py36的环境,则执行

conda deactivate
conda activate py36

记住,一定要先激活环境,再使用screen指令
激活成功后,我们可以使用screen指令创建一个新窗口(需要给这个窗口起一个名字)
假设我给创建的窗口起的名字是TRAIN2020

screen -S TRAIN2020

执行这段指令后,屏幕应该会自动开启一个新的页面
此后,可以在这个页面中照常跑程序。
假设我们要运行train.py这个程序
则在cd至指定目录后执行

python train.py

此后,服务器则开始跑这个程序,此时我们可以断开SSH(关闭这个命令行界面)
断开后,服务器会在本地继续跑这个程序

假如我们想恢复这个screen,看看程序跑没跑完
则只需要重新SSH连接到这个服务器,登陆同一个账号后
执行

screen -ls

即可查看当前服务器中总共保留有哪些 本地运行的screen
可能看到的列表格式是这样的

There are screens on:
	1234.TRAIN2020

此时,若我们想切到这个screen中,只需要执行

screen -r 1234

就看到恢复后的界面了

发布了43 篇原创文章 · 获赞 14 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41545780/article/details/104686862