远程连接linux服务器跑程序,如果本地电脑关机,linux服务器程序也会断掉,解决方法

远程连接Linux服务器跑程序,如果本地电脑关机,linux服务器程序也会断掉,这是因为断开连接后,终端会收到SIGHUP(hang-up 挂断)信号从而关闭该会话期的子进程。

有几种方法可以解决这个问题:
1. 使用nohup命令,在命令前加上nohup,并在命令后加上&符号,使程序在后台运行,并忽略SIGHUP信号1。例如:nohup ping 127.0.0.1 &。nohup会将程序的输出重定向到当前目录或$HOME目录下的nohup.out文件中。
2. 使用screen命令,创建一个虚拟终端,并在其中运行程序2。例如:screen -S name创建一个名为name的虚拟终端,然后在其中运行程序。如果要退出虚拟终端,可以按下Ctrl+A+D组合键。如果要重新进入虚拟终端,可以使用screen -r name命令。
3. 使用Ctrl+Z组合键将程序暂停,并使用bg命令将其放入后台运行。例如:运行了python tt.py这个程序,按下Ctrl+Z暂停它,然后输入bg %1将其放入后台运行。

这里使用的是第二种方法

screen -S name

在这里插入图片描述
打开了新的终端
在这里插入图片描述
激活环境
在这里插入图片描述
打开visdom
在这里插入图片描述
再打开一个会话,重复刚才的步骤,训练网络
在这里插入图片描述
然后将远程连接关闭
重新打开远程连接,输入

在这里插入图片描述
打开一个新的会话,再输入
在这里插入图片描述
发现都在继续运行,结束!
screen关闭指令

1. Ctrl + A, Ctrl + \ - 退出screen并终止所有在screen中运行的程序。这个命令适合在需要关闭一个tty连接的情况下使用。
2. Ctrl + D, D 或者 Ctrl + A, Ctrl + D - “最小化” screen并让它在后台运行。这个命令适合在需要暂时离开screen但不想关闭它的情况下使用。可以用screen -r来恢复它。
3. Ctrl + A, Q - 关闭除当前区域以外的所有区域。
4. Ctrl + A, X - 关闭当前区域。
当有两个相同的会话名称

There are several suitable screens on: 
145282.name (03/09/2023 07:23:56 AM) (Detached) 
130910.name (03/08/2023 01:00:00 PM) (Detached) 

方法

screen -d -r 145282.name
Ctrl + A, Ctrl + \ (或者输入exit)
screen -d -r 130910.name
Ctrl + A, Ctrl + \ (或者输入exit)

猜你喜欢

转载自blog.csdn.net/qq_40721108/article/details/129411611