- 博主简介:努力学习的22级计算机科学与技术本科生一枚🌸
- 博主主页: @是瑶瑶子啦
- 往期回顾: 【科研小白系列】模型训练已经停止(强行中断)了,可GPU不释放显存,如何解决?
- 每日一言🌼: “生命可以归结为一种简单的选择:要么忙于生存,要么赶着去死。”
—— 斯蒂芬·金《肖申克的救赎》
0、前言
最近连上实验室服务器跑模型了,但是发现这样有一个很鸡肋的点就是电脑不能关机,还得一直插着网线保持和服务器的连接才行。
之后同学告诉我说,有一个可以创建虚拟终端的方法,这样就算本地电脑关机,服务器仍然能够继续跑模型。这篇博客就是用来介绍在linux
系统下的screen
命令来实现这个功能。
1、screem
命令介绍
背景:系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
GNU Screen
是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
在用服务器跑深度学习模型的时候,往往需要用到后台运行,否则一断开终端程序就终止了。使用screen管理会话,不仅可以临时断开一个会话,让程序在后台继续运行。也可以在一个窗口管理多个会话,非常方便。
2、使用步骤
2.1、打开终端
使用Xsehll
连接并且打开终端
2.2、创建screen
会话,进行离线任务
使用如下命令创建screen会话,其中"my_screen"可以换成自己定义的名字。
screen -S my_screen
比如我下面创建一个叫RegAD
的作业:
按下回车后即可来到虚拟终端:
2.3 激活虚拟环境
来到虚拟终端后,激活相应的虚拟环境:
conda activate my_env(替换成自己的conda环境名)
2.4、进入项目目录,运行训练代码
2.5 退出并挂起虚拟终端
在Attached状态下,按Ctral
+a
,再按d
,此时会退出并挂起虚拟终端(保存会话,后台运行该虚拟终端),此时会话状态变成Detacted
2.6 查看当前有哪些会话
screen -ls
刚刚多次创建了RegAD
这个环境,所以发现有多个
也可以使用screen -R my_secreen
解释:-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
2.7 进入自己的会话
screen -r my_screen
2.8 删除会话
screen -S my_screen -X quit
screen -S 2292650.RegAD -X quit
3、补充
1、如何在screen窗口中翻页
重新进入会话后好像不能翻页,在自己的会话中按住Ctrl
+A
然后松手按[就可以进入copy mode
(必须为英文输入法),这时候可以用PgUp(小键盘"上"方向键)、PgDn(小键盘"下"方向键)来翻页。按Ctrl+C退出copy mode。
参考:
- linux后台运行命令screen的使用
- screen命令——linux服务器后台运行
- linux screen 命令详解