如何在结束ssh会话后保持进程运行?

Modified on: Sat, 09 Jun 2018 02:51:53 +0800

假设我从ssh会话中启动了一堆进程。是否可以在保持这些进程在远程计算机上运行的同时终止ssh会话?

最佳答案

你应该寻找像tmux这样的现代替代品。

由于种种原因,

tmux优于screen,这里只是一些例子:

  • Windows可以在会话之间移动,甚至可以链接到多个会话
  • Windows可以水平和垂直分割为窗格
  • 支持UTF-8和256色终端
  • 可以从shell控制会话,而无需输入会话

基本功能

要获得与推荐screen答案中所述相同的功能,您需要做以下事情:

  • ssh进入远程机器
  • 通过在shell中键入tmux来启动tmux
  • 在已启动的tmux会话中启动您想要的过程
  • 通过键入 Ctrl + b 然后 d
  • 离开/分离tmux会话

您现在可以安全地从远程计算机注销,您的进程将继续在tmux内运行。当您再次回来并想要检查进程的状态时,可以使用tmux attach附加到tmux会话。

如果您希望并排运行多个会话,则应使用 Ctrl + b $命名每个会话。您可以使用tmux list-sessions获取当前正在运行的会话的列表。

tmux可以比在单个会话中处理单个窗口做更高级的事情。有关详细信息,请查看man tmuxtmux GitHub页面。特别是,这里有一个FAQ,关于screentmux之间的主要区别。

作者:Zanna,tongpu

相关问答

添加新评论