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

问题描述

您应该寻找现代替代品,例如tmux.

tmux优于screen的原因有很多,这里只是一些例子:

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

基本功能

要获得与答案推荐中解释的相同功能screen,您需要执行以下操作:

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

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

如果您想同时运行多个会话,您应该使用Ctrl+b和命名每个会话$。您可以使用tmux list-sessions或简单地tmux ls现在使用命令附加到正在运行的会话来获取当前正在运行的会话的列表tmux attach-session -t <session-name>

tmux可以做比在单个会话中处理单个窗口更高级的事情。有关更多信息,请查看man tmuxtmux GitHub 页面。特别是,这里有一个关于 和 之间主要区别的常见screen问题解答tmux

解决方法

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...