Wenn ich ausführe tmux kill-session
, sendet es SIGHUP
an alle laufenden Prozesse. Dies reicht für meine Zwecke oft nicht aus und ich möchte SIGINT
oder senden SIGKILL
.
Ein Befehl wie dieser würde den Zweck erfüllen:
tmux list-panes -s -F "#{pane_pid} #{pane_current_command}" | grep -v tmux | awk '{print $1}' | xargs kill -9
(DavonAntwort.)
Wie kann ich das bei jedem Anruf ausführen kill-session
? Offenbar gibt es keinen before-kill-session
Hook.
Antwort1
Sie könnten Folgendes versuchen:
Fügen Sie Ihren Befehl in ein Skript wie dieses ein:
tmux lsp ...
tmux real-kill-session "$@"
Und machen Sie daraus +x. Fügen Sie dann command-alias
Folgendes hinzu:
set -s command-alias[100] 'real-kill-session=kill-session'
set -s command-alias[101] 'kill-session=run /path/to/kill.sh'
Es ist jedoch normalerweise keine gute Idee, alles als SIGKILL zu senden ... vielleicht als SIGTERM oder SIGINT, aber das sollte sich eigentlich nicht von SIGHUP unterscheiden.