3

是否可以给IPC::Run一个选项,它会在父进程死亡时终止进程?或者当父进程死亡时杀死子进程的简单方法?我知道我可以通过在父级中捕获信号来做到这一点,但如果已经存在一种简单的方法来做到这一点,我宁愿不重新发明轮子。我知道这可能不会抓住SIGKILL,但没关系,我打算以更合理的方式杀死父母。

4

1 回答 1

4

使用 END 块进行清理。

my @ipc_run_harnesses;
END { $_->kill_kill for @ipc_run_harnesses }

...
for my $start ( 1..2 ) {
    push @ipc_run_harnesses, IPC::Run::start( "while true; do sleep 1; echo running $start; done" );
}
sleep 10;
exit;
于 2013-02-08T02:46:56.277 回答