断开远程连接时保持正在运行的进程处于活动状态

use*_*229 4 ssh process

我在我自己的机器上由 ssh 启动的服务器上有一堆进程。现在大约三个小时,我机器的 Ubuntu 挂了,我看不到任何其他选项,只能重新启动。有没有办法让服务器上的进程保持活动状态?我对我的机器和服务器都有 root 访问权限。

提前致谢

Ter*_*ang 6

有几种方法可以实现这一点:

nohup

用于nohup运行命令,以便进程不受挂断(注销)的影响。

例如: nohup command > /path/to/log 2>&1 &

注意:上面的命令SIGHUP在后台运行免疫并将stdout/重定向stderr到指定的文件。

setsiddisown

使用setsiddisown基本上这允许进程作为新会话运行(init/ PID 1 作为其父),以便用户注销不会影响它。您可以阅读手册以获取更多信息。

推荐方法

使用tmuxscreen

tmuxscreen会话中运行命令/应用程序。我个人更喜欢tmux. 从技术上讲,它在主机(远程服务器)上运行一个服务器,只要守护进程没有死,所有会话信息都将被保留。

注意:如果您断开连接,只需再次 ssh 到服务器并运行tmux attach -t <target-session>以返回会话。使用tmux ls列出可用的会话。