perl fork并在超时后杀死子

时间:2014-01-23 13:54:06

标签: perl fork

my $pid = fork();
if ($pid)
{
   sleep 5;
   waitpid($pid,0);
}
if ($pid == 0) 
{
   sub1();
   exit 0;
} 
else
{
   exit;
}

我只需要澄清这段代码是否没有错误!

我需要保持父活动并保持24x7异步子进程,一旦子进程执行完毕,它应该被终止,而不必等待父进程终止。

1 个答案:

答案 0 :(得分:1)

您的代码将执行以下操作:

  1. 分叉一个孩子。
  2. 父母睡5秒,然后阻止在waitpid等待孩子退出。
  3. 同时,子项运行sub1(),然后以exit 0结束。孩子不关心或等待父母。
  4. 当孩子退出后,家长会继续进入else部分并终止:exit