我写了一个 Perl 程序,它在子进程中 fork 并调用一个后台程序,并有一个无限的 while 循环,它在父进程中做一些事情。现在while循环应该在子进程中的后台程序终止时离开:
$pid = fork();
if ( !$pid ) {
exec( "program args" );
} else {
while ( 1 ) {
# do something
# needs help: if program terminated, break
}
}
最佳答案
好吧,fork
为您的父进程提供子进程的 PID(您尽职尽责地在代码中检索)。这正是 parent 可以照顾 child 的原因。
要在循环终止时离开循环,您可以使用kill 0 $pid
来检查 child 是否仍然存在。请参阅 perldoc -f kill
。
关于perl - 当后台进程在 Perl 中终止时,如何通知我?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2191364/