if ($pid == 0) { # child print " child: exec\n"; exec("$prg arguments"); exit; } else { # parent print " parent: wait\n"; my $time = time(); my $kill_flag = 1; while (time() - $time < $timeout) { sleep 1; my $kid = waitpid($pid,WNOHANG); my $exit_value = $? >> 8; if ($kid > 0) { $kill_flag = 0; $return_code = !$exit_value; last; } } if($kill_flag) { kill(9, $pid); $return_code = 0; } } return $return_code;