如何配置 bashrc 以在关闭终端时关闭所有 tmux 会话?

如何配置 bashrc 以在关闭终端时关闭所有 tmux 会话?

我正在使用 Gnome 终端和 tmux,我希望当我关闭 Gnome 终端时所有 tmux 会话都关闭,这可能吗?我检查了Arch Wiki 上关于 tmux 的文章并找到了一些相关的代码,但它们都没有达到我想要的效果。现在,如果我关闭并打开 Gnome 终端,我会得到我所进行的会话,与我关闭终端并运行所有窗格和程序之前的情况一模一样。我想要的是当我关闭 Gnome 终端时所有会话都被终止。

答案1

选项 1:使用.bash_logout

在你的.bash_logout文件你可以添加tmux kill-server如果您不在登录 shell 中,或者 shell 被 SIGHUP 终止,则此操作将不起作用。

选项 2:使用 bash陷阱

这个选项可能更稳健。将以下代码放入您的.bash_profile(假设您使用 bash)中。

function close_tmux
{
    tmux kill-server
}
trap close_tmux EXIT

有关陷阱的其他资源的链接

trap声明的一些背景

包含大量trap示例的博客文章

Bash 脚本指南中有关陷阱的一章

一个关于陷阱的 Unix & Linux Stack 交换问题

相关内容