我通过 SSH 启动了一个进程,看起来需要 2-3 天。我没有通过 tmux 启动它,所以如果我的连接中断,我的任务将需要重新开始。
有没有什么方法可以让我登录到另一个 SSH 会话并在 tmux 会话中控制此进程,关闭原始 SSH 会话并让该进程继续运行?
答案1
byobu
或tmux
是终端多路复用器。Byobu 是屏幕。它同时具有byobu-screen
和byobu-tmux
。
- 使用 ssh 登录
运行多路复用器
byobu-screen
然后运行你的命令
使用多路复用器中的其他选项卡来分离:
byobu-screen -d
现在您已返回 SSH 会话,如果您使用,
ps ax
您可以看到它仍在运行。您现在可以exit
从 SSH 会话中。
恢复:
- 使用 ssh 登录
恢复多路复用器
byobu-screen -r
然后您就回到了原来的位置。您可以打开多个多路复用器会话,它们将保持运行(因为它们在后台)。因此,打开一个,分离,然后打开另一个,分离,尝试恢复。
- 返回你的命令
使用多路复用器中的其他选项卡再次分离:
byobu-screen -d
您现在可以
exit
从 SSH 会话开始。让您的命令继续运行。