【问题标题】:How to keep the task running after closing the ssh connection? [closed]关闭 ssh 连接后如何保持任务运行? [关闭]
【发布时间】:2014-04-29 14:44:25
【问题描述】:

即使ssh连接关闭,如何保持进程在远程服务器上运行?

【问题讨论】:

标签: linux bash ssh


【解决方案1】:

您可以使用 screen 来分离会话。你连接到你的 ssh 服务器,启动屏幕,然后你的计算......

在您下次连接时,screen -a 附加之前的会话

见:http://www.bangmoney.org/presentations/screen.html

【讨论】:

  • 感谢信息。我读了。重新附加应该是'screen -r'吗?
【解决方案2】:

您可以在屏幕或 tmux 会话中运行您的进程/命令, 或者你可以这样做:

yourcmd &
disown

【讨论】:

    【解决方案3】:

    另一个想法是使用tmux,它的工作原理类似于屏幕,但它更灵活且更易于使用(在我看来)。要保持进程运行,您只需使用命令tmux 启动一个 tmux 会话。

    这将“打开一个新终端”来运行您的程序,如果您愿意,您可以为会话命名以便在您有多个会话时使用命令 ctrl+b $ 而不是使用默认值轻松找到它名称(例如 0)。

    tmux 会话中运行您需要的程序后,您只需从ctrl+b d 会话中分离,然后返回到可以调用exit 的普通终端并关闭您的ssh 连接。

    当您再次登录时,您只需运行 tmux attach -t <session_name> 即可进入您让任务运行的会话。

    tmux 还提供了许多其他功能,例如使用ctrl+b %ctrl+b " 在会话内进行屏幕分割,用于垂直和水平分割。 (您可以使用ctrl+b <arrow in the direction of the screen you want to go to> 在不同屏幕之间移动。

    【讨论】:

    【解决方案4】:

    所有这些答案都是正确的,但是如果您从代码中启动 SSH 并给出 bash 命令,那么它们将不起作用。最好的方法是使用这个命令

    nohup command > /dev/null 2>&1 &

    【讨论】:

      猜你喜欢
      • 2011-11-13
      • 1970-01-01
      • 2022-01-26
      • 2021-07-25
      • 1970-01-01
      • 2013-10-29
      • 2014-06-14
      • 1970-01-01
      • 2013-04-17
      相关资源
      最近更新 更多