세션에서 스크립트를 실행하는 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
이후에 정리됩니다.