http://qs321.pair.com?node_id=175392


in reply to Re: Time out
in thread Time out

Both of these examples are fine for stuff that doesn't do any calls to system or exec.

But that's probably exactly what he wanted to do.
The quick answer is: Read perlipc and go on from there.

Long answer: working on that ;-)

Update: Here's the long answer:

#!/usr/bin/env perl use strict; use warnings; use POSIX qw/:sys_wait_h/; my $child_pid = undef; my $status = fork; die "failed to fork\n" unless defined $status; if ($status > 0) { # this is the parent process. local $SIG{ALRM} = sub { print STDERR "operation timed out for PID $ +status\n"; kill 9, $status }; alarm 10; my $pid = 0; do { $pid = POSIX::waitpid ($status, POSIX::WNOHANG); } until ($pid > 0); alarm 0; } else { # this is the child process. system "ssh a_server_could_hang"; }

For any non-portability hit your OS vendor :-(

Kay