
이는 후속 조치입니다.로그오프할 때 백그라운드 프로세스가 SIGHUP을 받나요?.
huponexit
로그인 쉘에서만 작동하는 것 같습니다 . 비로그인 셸(예: 터미널 창에서 시작되는 셸)에 대해 해당 동작을 어떻게 얻나요?
HUP
프로세스가 시작된 곳에서 bash로 보내는 것은 예상대로 작동하지만 huponexit
작동하지 않습니다.
답변1
셸이 종료될 때 실행할 코드를 직접 선언할 수 있습니다.
trap 'kill -HUP $(jobs -lp) 2>/dev/null || true' EXIT
(나의 이전 제안은 trap 'kill -HUP $$' EXIT
bash 4.2에서는 작동하지 않습니다. 소스를 올바르게 이해하면 bash는 이미 종료 조건을 처리하고 있을 때 HUP 재전송을 포함하여 일반적인 정리의 일부를 건너뛰기 때문입니다.)
답변2
trap 'kill -HUP -$$' exit
위에 댓글을 추가할 수가 없네요. 프로세스 그룹을 나타내려면 음수 기호를 접두어로 붙입니다. 내 생각엔 이게 끊길 것 같아모두쉘에 의해 생성된 하위 프로세스에는 손자, 증손자 등이 포함됩니다.