を実行すると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 と実際には何ら変わりません。