我经常同时运行几个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时为您提供一些功能,但我不确定您将如何处理detach钩子…