首页 > 解决方案 > 即使主终端窗口关闭,如何保持 tmux 会话活动?

问题描述

tmux我的目标是即使主终端窗口关闭也能保持会话活跃。我想知道这可能吗?


当我关闭主终端窗口时,tmux 会话结束,但如果我在终端中关闭单个窗口,它不会。

如果有两个或多个窗口或选项卡,当我关闭其中一个时,会话仍然继续,没有任何反应。但是当我关闭会话中最后一个剩余的窗口时,它将终止正在进行的 tmux 会话。

可能的情况,当终端打开时,使用 ssh 远程连接了 tmux 会话;如果我用左上角的闭合圆圈关闭 iTerm2,我正在进行的 tmux 会话将终止。

示例屏幕视图:

❯ which goo
goo: aliased to ssh -xt4C user@IP

在此处输入图像描述


我被告知在iTerm2 问题上:

您要关闭的是窗格,而不是窗户。如果关闭最后一个窗格,它会分离,因为 tmux 会在没有更多窗格时自动分离。这与 tmux 在 tmux 集成之外的行为一致。我不相信 tmux 有办法禁用这种行为,尽管要求这样的改变并不是不合理的(这需要 tmux 完成,我以后可以添加对它的支持)


我的tmux配置:

在此处输入图像描述

标签: sessiontmux

解决方案


在您的 Gitlab 问题中来自 George Nachman 的最新报价

取决于关闭按钮是否绑定隐藏窗口或终止窗口。如果它设置为杀死,那么您将无法通过重新连接来恢复窗口

因此,您似乎只是希望将按钮绑定到隐藏窗口。正如我在评论中所说,默认情况下,iTerm2 应该会询问您要做什么:

关闭 tmux 窗口时的 iTerm2 确认对话框

如果您曾经在这里检查过“记住我的选择”并单击了终止,这就是 iTerm2 现在为您所做的。

我在文档中找不到任何关于在哪里重置它的条目,但是在这个谷歌小组讨论中,乔治说:

默认情况下会显示一个提示,但可以永久隐藏。如果您想恢复它,请在关闭 tmux 选项卡时关闭 Prefs > Advanced > Suppress kill/hide dialog。tmux 窗口还有另一个类似命名的高级首选项。

讨论是从 2018 年开始的,但是这个选项仍然可以在代码中找到,所以我假设它仍然存在。

因此,您可能希望在关闭 tmux 窗口时禁用 Preferences > Advanced > Suppress kill/hide dialog。


推荐阅读