tmuxセッションを終了するときにすべてのプロセスにSIGKILL(またはSIGINT)シグナルを送信する方法は?

tmuxセッションを終了するときにすべてのプロセスにSIGKILL(またはSIGINT)シグナルを送信する方法は?

実行すると、実行中のすべてのプロセスに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と変わらないはずです。

関連情報