关闭 SSH 时继续 SSH 后台任务/作业

关闭 SSH 时继续 SSH 后台任务/作业

我有同样的问题这里但甚至超越这一点。

如果我注销/退出 SSH 连接,我需要我的程序在后台运行。退出前,我输入bgjobs检查后台运行任务,但退出 SSH 后,程序不运行,当我关闭 SSH 窗口时它会关闭。

如果我想在关闭 SSH 窗口后程序仍运行,该怎么办?我确实使用了nohup screen但它也不起作用,还是我遗漏了什么?

答案1

使用时screen你需要分离退出之前使用CTRL+A+ 。Dssh

或者,如果你想直接用屏幕运行进程,你可以使用

screen -dmSL [session name] [commands]
  • -d启动 screen 会话并立即断开连接
  • -m强制创建新的屏幕会话
  • -S让你给会话命名
  • -L打开日志记录~/screenlog.0

例子:

screen -dmSL workstuff myscript.sh

然后您可以:

稍后继续使用 screen -x workstuff

或者

检查日志文件 less -r ~/screenlog.0

答案2

使用tmux。我甚至不确定screen它是否仍在积极开发中。这有点像个人偏好问题,但作为 的用户tmux,我可以证明它大约在 5 分钟内就可以完成设置,并且运行完美。

在基于 Debian 的系统上(在远程机器上):

sudo apt-get install tmux

然后按 Enter 键进入tmux,运行所需的任何进程,然后按+ Ctrl(这将离开 tmux 会话)。然后,您可以退出 SSH。BD

当你需要返回/再次检查时,启动 SSH,然后输入tmux attach。它将带你回到你的tmux会话。

tmux有更多功能,详情请见此处。但这应该可以解决您的当前问题。

祝你好运!

答案3

最后,我使用以下方法解决了它screen

在屏幕模式下,使用 将其分离CtrlAD。然后您可以关闭 SSH 窗口。

答案4

nohup 使用:下面的第一个命令在后台启动程序 abcd,以便后续的注销不会停止它。

$ nohup abcd &

$ 退出

相关内容