# get rid of the certainly invalid pidfile
unlink($pidfile) if($pid == pidfromfile($pidfile));
# reap its dead children, if not done yet
- # waitpid($pid, &WNOHANG);
+ waitpid($pid, &WNOHANG);
# negative return value means dead process
return -$pid;
}
else {
print("RUN: Process with pid $pid already dead\n")
if($verbose);
+ # if possible reap its dead children
+ waitpid($pid, &WNOHANG);
push @reapchild, $pid;
}
}
print("RUN: Process with pid $pid gracefully died\n")
if($verbose);
splice @signalled, $i, 1;
+ # if possible reap its dead children
+ waitpid($pid, &WNOHANG);
push @reapchild, $pid;
}
}
print("RUN: Process with pid $pid forced to die with SIGKILL\n")
if($verbose);
kill("KILL", $pid);
+ # if possible reap its dead children
+ waitpid($pid, &WNOHANG);
push @reapchild, $pid;
}
}
}
- # Reap processes dead children.
+ # Reap processes dead children for sure.
if(defined(@reapchild)) {
foreach my $pid (@reapchild) {
if($pid > 0) {