小编don*_*rew的帖子

ForkManager SIGINT仅在fork中杀死当前进程

当我杀死使用ForkManager的perl进程时,我希望所有子进程都死掉.在下面的代码中,如果我运行它并在睡眠行运行时按ctrl+ c,print则会终止睡眠过程,但是在脚本结束之前所有行都会同时执行.理想情况下,我想要一个中断立即停止所有执行.我能做什么?

#!/usr/bin/perl -w
use Parallel::ForkManager;

main {
    my $fork1 = new Parallel::ForkManager(8);
    while (1) {
        $fork1->start and next;
        system("sleep 15s");
        print "Still going!"
        $fork1->finish;
    }
    fork1->wait_all_children;
}
Run Code Online (Sandbox Code Playgroud)

parallel-processing perl fork

3
推荐指数
1
解决办法
518
查看次数

标签 统计

fork ×1

parallel-processing ×1

perl ×1