我正在终端窗口的 tmux 窗口中启动一个进程。当我关闭终端窗口时,进程不会自动杀死,但如果我在关闭终端窗口之前杀死 tmux 窗口,进程就会被杀死。当终端窗口关闭时,如何杀死相关的 tmux 窗口?
我们可以将命令绑定到终端窗口的关闭事件吗?
答案1
这有点麻烦,但您可以将其添加到交互式 shell 配置中:
alias tmuxn='tmux new-session -s $$'
_trap_exit() { tmux kill-session -t $$; }
trap _trap_exit EXIT
然后您可以使用它tmuxn
来启动新会话。该会话将被命名为您的 shell 的 PID。当你的 shell 退出时,会话将被终止。
答案2
也许你不能。
对于大多数使用 的人来说tmux
,他们通常会关闭终端窗口而不是 tmux 窗口,以保持进程 ( ssh-client for example
) 运行。然后,您可以在另一个终端中附加 origin tmux 会话。
如果你不需要这个特征,您可以使用terminator
代替tmux
。
终结者分割终端窗口本身。因此,如果关闭终结器窗口,则会关闭该窗口中运行的所有内容。后台不会保留任何内容。