in reply to Re: Re: Update: Killing a process and, recursively, all its children
in thread Killing a process and, recursively, all its children
#!/usr/bin/perl -w use strict; use POSIX "WNOHANG"; setpgrp(0, 0); if(my $pid = fork) { #parent print "RESULT: $pid\n"; my $kid; my $count; do { $kid = waitpid(-1, WNOHANG); sleep 1; $count++; if ($count > 15) { print "I have waited too long. self destructin +g\n"; my $GID = getpgrp($pid); `kill -9 -$GID`; } } until $kid == $pid; } else { #child local $SIG{CHLD} = sub { wait() }; system("sleep 100"); exit; } print "I am all done\n";
|
|---|