如何杀死分叉进程?

时间:2014-01-09 10:14:41

标签: linux perl fork

我是编程Perl(或任何一般语言)的新手 我对该语言有基本的了解,并编写了一个小脚本,运行我的进程的多个分叉线程,这是脚本的片段。

use Perl6::Slurp;
use Parallel::ForkManager;

my $pm = Parallel::ForkManager->new(10);
my $time = 100;

alarm("$time");

for my $i (0 .. 100) {
  my $pid = $pm->start and next;
  job();
  $pm->finish;
}
$pm->wait_all_children;

sub job {
  print "Function Started On Thread";
}

现在,那不是我的实际代码。但它几乎是没有这个功能的概括 我希望它能在警报结束时结束。

现在我不知道这是不是一个简单的动作,但正如我所说,我对编程一般都是新手。 感谢任何有帮助的人!

1 个答案:

答案 0 :(得分:1)

向流程组发送信号。只需将以下内容添加到父级:

local $SIG{ALRM} = {
   local $SIG{TERM} = 'IGNORE';
   kill TERM => -$$;
   die "Timed out\n";
};