SIGTERM을 `script`로 보내면 좀비 프로세스가 발생합니다.

SIGTERM을 `script`로 보내면 좀비 프로세스가 발생합니다.

SSH를 통해 원격으로 작업을 실행하는 간단한 시스템을 구현 중입니다. 내 목표는 작업을 실행 screen하고 작업이 종료될 때 TypeScript를 사용하여 모든 출력을 기록 script하고 서버에 업로드하는 것입니다. 그러나 script프로세스가 SIGTERM을 수신해도 종료되지 않기 때문에(대신 내부에서 실행되는 프로세스가 script좀비가 됨) SIGTERM을 적절하게 처리하는 데 어려움을 겪고 있습니다(예: 원격 시스템이 종료되려고 할 때) .

다음 명령을 가정합니다.

script -e -q -c 'ping www.google.com'

killall -TERM script프로세스 에 SIGTERM 신호를 보내는 데 사용하면 scriptSIGTERM 신호가 ping종료되는 것처럼 보이지만 좀비 프로세스가 되어 script종료되지 않습니다.

> ps -aux | grep ping
karel    16460  0.0  0.0  10852  2732 pts/2    S+   12:57   0:00 script -e -q -c ping www.google.com
karel    16461  0.1  0.0      0     0 ?        Zs   12:57   0:00 [ping] <defunct>

내가 올바르게 이해했다면 부모 프로세스가 여전히 이를 관찰하고 있기 ping때문에 프로세스는 좀비입니다 . 그러나 프로세스 관찰을 중지하고 (타입 스크립트를 플러시하는 동안) 정상적으로 종료 script할 수 있습니까 ?script

관련 정보