因为实验室中我这个工位的网络有点连接不稳定,在跑实验的时候会出现程序中断的情况,而我在控制台终端还看不出来。
注:首先可以通过以下指令判断是否GPU在运行,从而判断程序是否已经中断。
nvidia-smi
开始配置Ubuntu系统中的screen指令,用来避免上面程序中断的问题。
1、在成功连接到服务器并登陆后,在命令行中切换到自己的环境,如我的环境是anaconda创建的名为yzk的环境,则执行
conda activate yzk
2、安装screen(如果不知道有没有的话可以先进行第三步,看是否已经有了screen)
conda install screen
3、在激活环境和安装screen成功后,我们可以使用screen指令创建一个新窗口(需要给这个窗口起一个名字)。假设我给创建的窗口起的名字是TRAIN2024
screen -S TRAIN2024
执行这段指令后,屏幕应该会重新开启一个新的终端页面,此后,可以在这个页面中重新进入我们的环境,并且cd至指定目录后执行项目,例如执行train.py文件
python train.py
4、此后,服务器则开始跑这个程序,此时我们可以断开SSH(关闭这个终端界面),断开后,服务器会在本地继续跑这个程序
假如我们想恢复这个screen,看看程序跑没跑完,则只需要重新SSH连接到这个服务器,登陆同一个账号后,在终端输入:
screen -ls
然后会出现下面类似的结果:
There is a screen on:
1423013.TRAIN2024 (Attached)
1 Socket in /tmp/uscreens/S-zikang.
5、此时,若我们想切到这个screen中,只需要执行下面的指令,就看到恢复后的界面了
screen -r 1423013
6、如果想杀掉这个screen终端可以执行
kill 1423013
另外,linux在进入screen模式下之后,发现是无法在终端使用鼠标滚轮进行上下翻页拉动的,无法查看上面的终端输出内容了
解决办法:
进入回滚模式(可以操作鼠标滚轮上下翻页):
先按Ctrl+a键,然后释放,然后再按[键即可进入翻页模式。
但是这个状态的时候,终端的输出内容会静止,不再现实真实的新输出值。我们可以切换回之前模式:
Ctrl+c
参考文献:
SSH远程连接服务器时,避免因断网导致程序终端执行,可使用screen指令_ssh 网络波动 会断开吗-CSDN博客
ssh连接服务器中断,如何让命令继续在服务器执行 | Darren
screen模式无法翻页,鼠标无法滚动问题_screen中鼠标滚轮不可用-CSDN博客
版权归原作者 鱼鱼鱼的记录 所有, 如有侵权,请联系我们删除。