对于那些通过谷歌搜索登陆这里的人,我想添加 tmux 作为另一个选项。 tmux 被广泛用于此目的,预装在新的 Ubuntu EC2 实例上。
管理单个会话
这是Hamish Downer 在 askubuntu.com 上给similar question 的一个很好的答案:
我会使用终端多路复用器 - screen 是最著名的,tmux 是该想法的最新实现。我使用 tmux,建议你这样做。
基本上 tmux 将在计算机上运行一个终端(或一组终端)。如果您在远程服务器上运行它,您可以在终端不死的情况下断开与它的连接。然后当您稍后再次登录时,您可以重新连接,并查看您错过的所有输出。
要第一次启动它,只需键入
tmux
然后,当你想断开连接时,你做 Ctrl+B, D(即按下 Ctrl+B,然后松开两个键,然后按 d)
当你再次登录时,你可以运行
tmux attach
然后您将重新连接到 tmux 并查看发生的所有输出。请注意,如果您不小心丢失了 ssh 连接(例如您的网络出现故障),tmux 仍将运行,尽管它可能认为它仍连接到连接。您可以告诉 tmux 与上一个连接分离并通过运行附加到新连接
tmux attach -d
事实上,您可以一直使用-d 选项。在服务器上,我的 >.bashrc
中有这个
alias tt='tmux attach -d'
所以当我登录时,我只需输入tt 并重新附加。您可以更进一步>如果您愿意,将命令集成到 ssh 的别名中。我在服务器上的 tmux 内部运行邮件客户端,并且我有一个本地别名:
alias maileo='ssh -t mail.example.org tmux attach -d'
这会 ssh 到服务器并在最后运行命令 - tmux attach -d -t 选项确保启动终端 - 如果提供了命令,则默认情况下它不会在终端中运行。所以现在我可以在本地命令行上运行 maileo 并连接到服务器和 tmux 会话。当我与 tmux 断开连接时,ssh 连接也会被终止。
这显示了如何将 tmux 用于您的特定用例,但 tmux 可以做的远不止这些。这个tmux tutorial 会教你更多,还有更多。
管理多个会话
如果您需要同时在后台运行多个进程,这会很有用。为了有效地做到这一点,每个会话都将被命名。
启动(并连接到)一个新的命名会话:
tmux new-session -s session_name
如上所述从任何会话中分离:Ctrl+B、D。
列出所有活动会话:
tmux list-sessions
连接到命名会话:
tmux attach-session -t session_name
要终止/停止会话,您有两种选择。一种选择是在连接到要终止的会话时输入exit 命令。另一种选择是使用以下命令:
tmux kill-session -t session_name