通过 SSH 登录时在远程系统上自动启动 Tmux 会话

多路复用器 通过 SSH 使用远程系统时的会话。 因为,它可以防止您在网络连接突然断开时失去对正在运行的进程的控制。 万一网络连接因任何原因断开,Tmux 会话中的进程将继续在远程系统上运行,因此一旦网络连接重新联机,您可以使用“tmux attach”命令重新连接到 Tmux 会话。 如果您一开始就忘记启动 Tmux 会话怎么办? 不管你多么小心,有时你可能会忘记启动 Tmux 会话。 这是避免此问题的简单方法。 通过 SSH 登录时,您可以在远程系统上自动启动 Tmux 会话。 如果您在通过 SSH 从本地系统升级远程 Linux 服务器时丢失了网络连接,这将特别有用。 请注意,每当您尝试从本地或通过 SSH 从另一个系统远程登录 Linux 系统时,以下提示将自动启动 Tmux 会话。

通过 SSH 登录时在远程系统上自动启动 Tmux 会话

要在通过 SSH 连接时自动启动 Tmux 会话,请编辑远程系统的 ~/.bash_profile 文件:

$ nano ~/.bash_profile

如果文件不可用,只需创建它。

并在其中添加以下行:

if [ -z "$TMUX" ]; then     tmux attach -t default || tmux new -s default fi

Save 和 close 文件。 注销并重新登录到远程系统。 您将进入一个名为的新 Tmux 会话 ‘默认’.

现在,启动 Tmux 会话中的任何进程,然后按 Ctrl+b 其次是 d. 即使在网络连接断开后,该进程仍将在 Tmux 会话中继续运行。 网络连接恢复后,通过 SSH 连接到远程系统,您将看到作业仍在运行!!

看看下面的动画输出:

让我澄清一下我刚刚在上面的输出中做了什么。

  1. 我从本地系统通过 SSH 连接到远程 Ubuntu 服务器。 一个名为“default”的新 Tmux 会话会自动启动。
  2. 在 Tmux 会话中,我运行一个命令(例如 watch grep “cpu MHz” /proc/cpuinfo)来监控 CPU 速度。
  3. 然后,我按 Ctrl+bd.
  4. 然后,我使用“tmux ls”命令列出 Tmux 会话并退出 SSH 会话。
  5. 最后,我通过 SSH 重新连接到远程系统,并验证进程是否在 Tmux 会话中继续运行而没有任何中断。

希望你能理解。

要停止自动启动 Tmux 会话,只需从远程系统的 ~/.bashrc 或者 ~/.bash_profile 文件。

这个简单的提示可以帮助您避免失去对远程工作的控制。 您不必每次都手动启动 Tmux。 只要按照本指南中的说明通过 SSH 连接到远程系统,只需让 Tmux 自动启动。

建议阅读

  • 登录时如何在 Linux 上自动启动屏幕会话
  • Reptyr – 将正在运行的进程从一个终端移动到另一个终端而不关闭它

感谢您的光临!

帮助我们帮助您:

  • 订阅我们的电子邮件通讯: 立即注册
  • 支持 OSTechNix: 通过贝宝捐款
  • 下载免费的电子书和视频: TradePub 上的 OSTechNix
  • 联系我们: 红迪网 | Facebook | 推特 | 领英 | RSS订阅

祝你有美好的一天!!

自动启动TmuxCLI命令行LinuxSSH提示和技巧TmuxTmux提示