하위 tmux 프로세스가 종료되면 함수를 실행하고 싶습니다.
다음 스크립트를 고려해보세요.
#!/bin/bash
function foo
{
echo "foo exit"
}
trap foo SIGHUP
tmux
이 스크립트는 tmux를 시작합니다. 그런 다음 tmux 세션 내에서 다음을 실행합니다.
$ tmux kill-session
그런 다음 tmux가 닫히고 다음이 표시됩니다.
[exited]
함수가 foo
호출되지 않았습니다. 상위 프로세스가 SIGHUP 신호를 수신하지 않았기 때문인 것 같습니다.
foo
종료 시 이 기능이 실행되기를 원합니다 . tmux
이 목표를 어떻게 달성할 수 있나요?
답변1
신호를 로 바꿔야 합니다 SIGCHLD
.
trap foo SIGCHLD
분기된 하위 프로세스가 중지/종료되면 이 신호가 상위 프로세스로 전송됩니다. 언급했듯이 SIGHUP
현재 프로세스/스크립트에만 영향을 미칩니다.