问题描述
您应该寻找现代替代品,例如tmux
.
tmux
优于screen
的原因有很多,这里只是一些例子:
- Windows 可以在会话之间移动,甚至可以链接到多个会话
- 窗口可以水平和垂直分割成窗格
- 支持 UTF-8 和 256 色终端
- 可以从 shell 控制会话,而无需进入会话
基本功能
要获得与答案推荐中解释的相同功能screen
,您需要执行以下操作:
- ssh 进入远程机器
- 首先在 shell
tmux
中输入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 tmux
tmux GitHub 页面。特别是,这里有一个关于 和 之间主要区别的常见screen
问题解答tmux
。
解决方法
假设我从 ssh 会话中启动了一堆进程。是否可以在保持这些进程在远程计算机上运行的同时终止 ssh 会话?