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과 다르지 않습니다.

관련 정보