如何在 shell 退出时分离 tmux,但在从会话概述中杀死时不分离?

如何在 shell 退出时分离 tmux,但在从会话概述中杀死时不分离?

我打开的每个终端窗口都会自动附加到一个新的 tmux 会话。关闭此类 tmux 会话内的 shell 应分离 tmux 客户端,以便关闭终端窗口。这可以通过设置此选项来完成:

set -g detach-on-destroy on

Ctrl但是,当我从会话概述( + bwx、 )中终止当前会话时y,tmux 客户端也会分离。相反,我希望它保持附加状态,以便我可以从会话概述中选择另一个会话。

问题是,当会话退出时,我怎样才能使 tmux 分离,因为它正在运行的进程(即 shell)退出,但当会话从会话概述中终止时仍保持连接?

答案1

您可以通过关闭 detach-on-destroy 并将 detach-client 放入窗格退出挂钩中来实现此目的。

答案2

这是更易读的一点:

set -g remain-on-exit on
set -g pane-died 'if -F "#{&&:#{==:#{session_windows},1},#{==:#{window_panes},1}}" "killp; detach" "killp"'
set -g detach-on-destroy off

相关内容