时间有限,在好不容易跑通了代码的前提下,安心去睡觉,起床一看半夜3点自动断开服务器然后代码停下来了啊啊啊啊啊,师兄告诉了我用screen,这就学了记录一下。
ssh连接上服务器
1.直接在默认状态下安装screen
sudo apt install screen.
2.创建自己的一个screen会话
screen -S mysession
创建一个名为 “mysession” 的新会话。 “mysession” 可改为指定名称。
运行该代码之后,就进入了mysession会话中
3.运行代码
转到我们需要运行的文件的目录
cd /tmp/pycharm_project_880
activate 自己的环境
conda activate Fiona0329
运行代码
python run.py
4. 断开连接(不影响代码运行)
当需要断开连接时,按下以下快捷键:
按下 Ctrl + A + D,这将使 screen 会话在后台继续运行,并返回到本地终端。
使用ctrl+a+d退出screen,然后再×掉cmd窗口了可以关机出去玩耍啦,代码还会继续在服务器中愉快地跑~
5.查看和恢复会话
5.1)首先,需要恢复会话先要知道之前创建会话的名称,即查看screen会话,输入如下命令,可以查看创建的所有screen回话。所有会话的名称由id和name组成。
screen -ls
Detached意思是当前screen没有被打开,相对的是Attached表示当前screen正处在打开状态。
5.2)恢复会话,输入以下命令即可。
screen -r 113738.myCode
5.3)删除已经运行结束或出现报错代码的会话文件
在会话中运行
exit
或者
screen -S 113778.myCode -X quit
screen -X -S 113778 quit
screen -S myCode -X quit
6.报错
报错内容:There is no screen to be resumed matching.
会话在窗口打开时,但由于网络不稳定,使得xshell直接与服务器断开连接,重新连接上之后,再使用screen -r 命令恢复该会话就报了这个错误;这个错误是因为之前没有好好关闭会话而是突然断开,说明之前的还没关,而一个会话不能恢复两次。
解决办法
6.1)先将该会话离线
screen -d 113778.myCode
6.2)再恢复。
screen -r 113778.myCode
二编补充一些内容
7. 不小心ctrl+z,stop了程序
通过 Ctrl+Z 停止任务实际上是将其暂停并挂起,而非终止。此时任务仍在后台保持运行状态,可通过以下步骤恢复:
7.1查看挂起的任务
在终端中输入 jobs 命令,会列出当前所有被暂停的任务。
例如:
[1]+ Stopped python main.py
这里的 [1] 是任务编号。
7.2将任务放到后台运行
使用 bg %1 命令(其中 %1 对应任务编号)将暂停的任务恢复到后台继续执行:
bg %1
此时任务会在后台继续运行,但无法直接看到输出。
7.3(选做)恢复 screen 会话
若之前已退出 screen,需重新连接到原会话:
screen -r
如果会话有多个或名称不明确,可先通过 screen -ls 查看所有会话,再选择对应的会话恢复。
7.4将任务调回前台
进入 screen 会话后,使用 fg %1 命令将后台任务调回前台,以便实时查看输出:
fg %1
通过以上步骤,任务会继续运行,输出将实时显示在 screen 会话中。
&spm=1001.2101.3001.5002&articleId=143853559&d=1&t=3&u=de0e9a554eff48b9b85305197fdd0e5d)

被折叠的 条评论
为什么被折叠?



