스크립트가 완료된 후 tmux 세션 종료

스크립트가 완료된 후 tmux 세션 종료

세션에서 스크립트를 실행하는 bash데 사용하는 스크립트가 있습니다 . tmux다음과 같습니다.

#!/bin/bash
session="myjob"
tmux new-session -d -s $session
tmux send-keys 'myscript' 'C-m'

문제는 myscript종료 후에도 세션이 myjob여전히 존재한다는 것입니다. myscript완료되면 자동으로 종료 하고 싶습니다 . 나는 시도했다:

#!/bin/bash
session="myjob"
tmux new-session -d -s $session
tmux send-keys 'myscript' 'C-m'
tmux kill-session -t $session

그러나 이는 myscript완전히 건너뛰고 세션을 직접 종료합니다.

답변1

다음을 수행할 수 있어야 합니다.

tmux send-keys 'exec myscript' 'C-m'

이렇게 하면 쉘이 exec스크립트를 실행합니다(즉, myscript쉘 프로세스가 하위 프로세스로 시작되지 않고 대체됩니다). 그런 다음 해당 프로세스가 종료되면 실행 중인 프로세스 tmux가 되므로 tmux이후에 정리됩니다.

관련 정보