使用服务器时进行深度学习训练时,本地必须一直保持连接状态吗?
可以直接查看方法,不看背景
- 1.使用背景
- 2. 方法
- 2.1 screen命令介绍
- 2.2 为什么要使用screen命令
- 2.3 安装screen
- 2.4 创建session
- 2.5 查看session是否创建成功
- 2.6 跳转进入session
- 2.7 退出跑代码的session
- 2.8 删除session
1.使用背景
我们在进行深度学习训练的时候,大部分时间都是在服务器上跑代码,每次跑代码的时候,自己的本地电脑也不能关机。偶尔本地断网的话会导致远程服务器的进程自动关闭! 但是我们并不需要一定盯着电脑,我们只需要查看日志就可以追踪导代码的进展。
使用下面的方法,即可实现远程自动跑代码的同时,本地电脑关机也不会导致远程的进程被关闭。
2. 方法
2.1 screen命令介绍
screen命令虚拟了一个终端(session),可在终端内运行命令,多次运行screen命令可以虚拟多个不同的终端;
每个session可以开启多个窗口,每个窗口有自己的shell,可以在不同的窗口中同时运行多个命令,每个命令都相当于在前台运行,可以与用户交互;
2.2 为什么要使用screen命令
使用screen可以在终端退出后,为进程保留一个虚拟终端,从而再次连接到终端,attach到screen后,还可以继续与进程进行交互操作。(这就是可以本地关机的原理)
2.3 安装screen
(1) 首先检测有没有screen
screen -ls
查看是否安装screen命令。
(2) 若没有,在服务器上安装screen
centOS系统运行: yum install screen
Ubuntu系统运行: apt-get install screen
如果权限不足需要加入sudo命令
2.4 创建session
创建一个名字为test的session
screen -S test
2.5 查看session是否创建成功
screen -ls
Detached表示此时没有在46643.test这个窗口里面
2.6 跳转进入session
进入相应的session
screen -r 46643.test
进入之后,就可以在此session中运行自己的代码了。等他跑起来就可以退出。
2.7 退出跑代码的session
键盘上按 Ctrl+a+d 即可退出此会话。之后就可以退出终端,关上电脑,让服务器自己跑啦。后续查看日志就可以了。
注意要用英文模式操作!!!
注意:如果想要再次进入此session,只需要再次运行2.6的步骤即可。
2.8 删除session
删除之前先找到要删除的screen,然后运行下面命令即可删除。
screen -X -S 46643.test quit