我经常同时运行几个 tmux 会话,在大多数这些会话中,我将在一个端口上运行一个本地服务器。我想要的是能够在从 tmux 会话分离时自动终止该服务器,并在重新连接时类似地重新启动服务器。
tmux 中是否有任何东西可以使这更容易,感觉就像 tmux 提供了一个钩子,以便您可以在会话分离或重新连接之前运行脚本,但我看不到这样的东西文档。
我经常同时运行几个 tmux 会话,在大多数这些会话中,我将在一个端口上运行一个本地服务器。我想要的是能够在从 tmux 会话分离时自动终止该服务器,并在重新连接时类似地重新启动服务器。
tmux 中是否有任何东西可以使这更容易,感觉就像 tmux 提供了一个钩子,以便您可以在会话分离或重新连接之前运行脚本,但我看不到这样的东西文档。
快进到 2017 年。今天,tmux 调用了钩子client-attached
,client-detached
当客户端分别连接到会话或从会话中分离时,这些钩子就会运行。
tmux a # attach most recent tmux session
或者
tmux list-sessions # look for the session you want to kill
tmux a -t 0 # attach session named "0"
一旦进入你想要杀死的会话:
[Ctrl]-B x # kill current pane of current session
对该会话中的所有窗格和窗口执行此操作,并且应该这样做。
您可以将这样的内容添加到您的~/.tmux.conf
shell-command /bin/bash yourhook.sh
在运行 tmux 时,这至少会给你一些功能,但我不确定你会对分离钩子做什么......