當我運行時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 沒有任何不同。