丢失 ssh 会话是否会终止 tmux 中运行的命令?

San*_*ani 6 ssh tmux

我知道的问题是基本问题,但在社区中找不到完全匹配的问题。
使用 tmux 的标准过程是 - 创建一个会话,在其中运行命令,然后分离会话。所以现有的 ssh 终端不会杀死我们的进程。

我的问题是,是否创建了 tmux 会话并且其中正在运行一个长命令。但在分离之前,如果 ssh 会话终止,那么这个 tmux 会话会持续存在还是也会被终止

Rav*_*ina 4

基本上在失去 ssh 连接后,子进程将收到一个SIGHUP. 此信号会导致tmux自身与丢失的 ssh 会话分离。

因此,即使 ssh 会话终止,tmux 的会话也将在远程计算机上保持持久状态。


自己测试一下:

  1. 打开终端并运行tmux.
  2. 在您的“tmux”会话中运行sleep 100.
  3. 打开另一个终端并运行:pkill -1 tmux
    • 现在 tmux 已在第一个终端中关闭。
  4. 运行tmux ls以查看您的会话是否仍然存在。
    • 或者tmux attach提出来。

我还在远程计算机上测试了实际丢失 ssh 会话的情况,结果是相同的。