일반적으로 사용되는 기존의 휴대용 방법은 부모 프로세스가 자식을 감시하는 것입니다.
기본 프리미티브는 wait
및waitpid
시스템 호출입니다. 하위 프로세스가 종료되면 상위 프로세스가 SIGCHLD
신호를 수신하여 wait
종료 한 하위 및 종료 상태를 알도록 호출해야 함 을 알려줍니다. 부모 프로세스는 대신 편의상 무시 SIGCHLD
하고 호출 하도록 선택할 수 있습니다 waitpid(-1, &status, WNOHANG)
.
많은 프로세스를 모니터링하려면 동일한 부모에서 프로세스를 모두 생성하거나 원하는 프로그램을 호출하는 간단한 모니터링 프로세스를 통해 프로세스를 모두 호출하고 종료 될 때까지 기다렸다가 종료에 대해보고합니다 (쉘 구문). myprogram; echo myprogram $? >>/var/run/monitor-collector-pipe
. Windows 세계에서 온다면, 하나의 특수한 작업을 수행하는 작은 프로그램을 갖는 것이 Unix 세계에서 일반적인 디자인이며 OS는 프로세스를 저렴하게 만들도록 설계되었습니다.
프로세스가 종료되는시기를보고하고 선택적으로 다시 시작할 수있는 Monit , Supervise , Upstart 등의 프로세스 모니터링 (감독 자라고도 함) 프로그램이 많이 있습니다 .