杀死用fork创建的子进程

用户名

将输出以下内容:

Start of script
PID=29688
Start of script
PID=0
Running child process 1
Done with child process
PID=29689
Start of script
PID=0
Running child process 1
Done with child process

它正在按预期工作,但是我想杀死以前的子PID。

如何不杀死MAIN就能杀死孩子的PID?

谢谢 !

my $bla = 1;

while (1) {

print "Start of script\n";
run_sleep();

}

sub run_sleep {

    sleep(3);
    my $pid = fork;

    return if $pid;     # in the parent process
    print("PID=" . $pid . "\n");
    print "Running child process " . $bla++ . "\n";
    exit(0);  # end child process

}
伦·贾菲

当您派生一个孩子,然后未能在其上等待()时,它退出时将成为已失效的进程(在Unix中是僵尸)。您会注意到它的父进程ID为1,并且直到操作系统重新启动后它才会消失。

因此,用于分叉的传统伪代码如下所示:

if ($pid = fork()) {
   # pid is non-zero, this is the parent
   waitpid($pid)   # tell OS that we care about the child

   do other parental stuff
}
else {
   # pid is 0 so this is the child process
   do_childish_things()
}

您的代码无法做到这一点,因此您可能会遇到僵尸,然后沮丧地发现您无法摆脱它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C ++中,fork and kill不杀死所有子进程

来自分类Dev

父母去世时如何杀死用subprocess.check_output()创建的python子进程?

来自分类Dev

如何使用fork创建并行子进程

来自分类Dev

创建子进程并在调用该进程后将其杀死

来自分类Dev

杀死NodeJS子进程

来自分类Dev

杀死Popen子进程

来自分类Dev

Python子进程.Popen用信号杀死后返回代码

来自分类Dev

杀死在Python的__init__类中创建的子进程

来自分类Dev

杀死在Python的__init__类中创建的子进程

来自分类Dev

子进程没有用 fork() 退出

来自分类Dev

在C中分解由fork()创建的子进程

来自分类Dev

C,Fork后无法杀死父进程

来自分类Dev

nodejs永远监控不杀死fork进程

来自分类Dev

用C / C ++程序杀死UNIX中父进程的所有子进程?

来自分类Dev

杀死bash和子进程

来自分类Dev

用PHP杀死进程父母

来自分类Dev

用php命令杀死进程

来自分类Dev

如何同时杀死进程和子进程?

来自分类Dev

杀死子管道进程的父进程

来自分类Dev

如何杀死所有子进程而不杀死父进程

来自分类Dev

在使用fork()创建的C语言中,将子进程中的值返回给其父进程

来自分类Dev

使用fork创建多个进程

来自分类Dev

使用fork创建多个进程

来自分类Dev

僵尸进程(杀死子进程和父进程)

来自分类Dev

子进程如何杀死其他子进程然后终止?

来自分类Dev

用子进程替换进程

来自分类Dev

用子进程替换进程

来自分类Dev

如何杀死由子线程启动的进程?

来自分类Dev

使用bash脚本杀死子进程