0.前言
在Linux服务器上跑代码,如果一直在线跑的话需要有人看着,也很容易因为网络不稳定突然就断开了,非常不适合需要长时间运行的代码;后来认识到了screen,使用了一段时间后觉得确实比较方便,也记录一下。
使用软件:xshell | 环境:pytorch | 语言:python
1.创建screen会话
screen -S myCode
运行该代码之后,就进入了myCode会话中,
2.运行代码
2.1)先进入需要运行的python文件的路径下
cd myfile/
2.2)再进入对应的环境中,例如PyTorch (可选)
conda activate pytorch
2.3)最后使用命令执行相应的python代码文件。
python test.py
如果运行没有出现什么问题的话,之后代码会挂到服务器上离线运行,无论是关掉窗口甚至是关闭软件或随意滑动等,对代码的运行都不会有影响;从代码运行开始,就已经和在线的命令框断开了联系。
3.恢复会话
3.1)首先,需要恢复会话先要知道之前创建会话的名称,即查看screen会话,输入如下命令,可以查看创建的所有screen回话。所有会话的名称由id和name组成。
screen -ls
3.2)恢复会话,输入以下命令即可。
screen -r 12345.myCode
3.3)删除已经运行结束或出现报错代码的会话文件
screen -S 12345.myCode -X quit
4.报错
报错内容:There is no screen to be resumed matching.
会话在窗口打开时,但由于网络不稳定,使得xshell直接与服务器断开连接,重新连接上之后,再使用screen -r 命令恢复该会话就报了这个错误;这个错误是因为之前没有好好关闭会话而是突然断开,说明之前的还没关,而一个会话不能恢复两次。
解决办法
4.1)先将该会话离线,
screen -d 12345.myCode
4.2)再恢复。
screen -r 12345.myCode
5.参考
- https://blog.csdn.net/qq_34131701/article/details/124353270
- https://blog.csdn.net/weixin_44527630/article/details/131556076
如果你觉得这篇文章对你有所启发的话,期待你的点赞、收藏和打赏,对我创作的支持!!!