in reply to Re^3: forking and monitoring processes
in thread forking and monitoring processes
Thanks for reply. When I run the program, the processes seems to start but the program seems to timeout at the select command can_read. Since it a dir command, output is expected immediatly, I was not sure why it was timing out.
#! perl use IO::Select; my %pids; my $s = IO::Select->new(); my @proc = (qw(C M)); for ( <@proc> ) { my $cmd = "dir $_:"; print "this is my cmd: $cmd \n\n"; my $pid = open my $fh, "-|", $cmd or warn "Could not fork&open $cmd: $!" and next; $pids{$fh} = [ $pid, $_ ]; $s->add($fh); } while (my @ready = $s->can_read) { for my $fh (@ready) { if (eof $fh) { delete $pids{$fh}; $s->remove($fh); next; } my $line = <$fh>; if ($line =~ /Rational/) { chomp $line; print "Found 'Rational' in '$line' from $pid{$fh}[1]\n"; kill 15, values %pids; } } }
Thanks.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: forking and monitoring processes
by revdiablo (Prior) on Jan 08, 2005 at 21:23 UTC | |
by Anonymous Monk on Jan 09, 2005 at 06:11 UTC | |
by Anonymous Monk on Jan 08, 2005 at 21:49 UTC |