当我运行时tmux kill-session
,它会发送SIGHUP
到所有正在运行的进程。这通常不足以满足我的目的,我想发送SIGINT
或SIGKILL
。
像这样的命令就可以解决问题:
tmux list-panes -s -F "#{pane_pid} #{pane_current_command}" | grep -v tmux | awk '{print $1}' | xargs kill -9
(由此回答.)
我怎样才能在每次打电话时运行这个kill-session
?显然没有before-kill-session
钩子。
答案1
你可以试试这个——
将命令放入如下脚本中:
tmux lsp ...
tmux real-kill-session "$@"
并使其+x。然后command-alias
像这样添加:
set -s command-alias[100] 'real-kill-session=kill-session'
set -s command-alias[101] 'kill-session=run /path/to/kill.sh'
虽然发送所有 SIGKILL 通常是一个坏主意......也许是 SIGTERM 或 SIGINT,但它们实际上应该与 SIGHUP 没有任何不同。