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

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

我在自己的机器上通过 ssh 启动了服务器上的一堆进程。现在大约三个小时了,我的机器的 Ubuntu 已经挂起,除了重新启动,我没有看到任何其他选择。有什么方法可以让服务器上的进程保持活动状态?我对我的机器和服务器都有 root 访问权限。

提前致谢

答案1

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

nohup

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

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

笔记:上述命令SIGHUP在后台运行,并将stdout/重定向stderr到指定的文件。

setsiddisown

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

推荐方法

使用tmuxscreen

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

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

相关内容