필자는 자식 프로세스에서 백그라운드 프로그램을 fork하고 호출하는 Perl 프로그램을 작성했으며 부모 프로세스에서 몇 가지 작업을 수행하는 끝이없는 while 루프가 있습니다. 프로그램이 종료하기 전에 반환하지 않을 수 있도록Perl에서 백그라운드 프로세스가 종료 될 때 어떻게 알림을받을 수 있습니까?
$pid = fork();
if (!$pid) {
exec("program args");
} else {
while (1) {
# do something
# needs help: if program terminated, break
}
}
문제는 프로세스가 좀비가되어 명령이 여전히 true를 반환한다는 것입니다. –
$ SIG {CHLD} = '무시'(다음 답변 참조)를 설정할 때 작동합니다. –