Thread alarm Output auf AIX
(4 answers)
Opened by peterb at 2015-03-11 16:16
Hi
Ich habe das alarm Sample aus der Perl Dokomentation gefunden um ein Kommando mit Timeout auszuführen. Das funktioniert wunderbar, jedoch möchte ich auch den Output des Kommandos haben, wenn es in das Timeout läuft. Scheinbar dürfte durch das die im eval Block der Output flöten gehen. Könnt ihr mir hier behilflich sein? Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #!/usr/bin/perl use strict; use warnings; my $cmd = '/etc/ping'; my $host = '127.0.0.1'; my $timeout = 3; my @cmd = (); eval { local $SIG{ALRM} = sub { die "alarm\n" }; alarm $timeout; print "fuehre exec aus: $cmd -c 5 $host\n"; @cmd = `$cmd -c 5 $host`; alarm 0; }; if ($@) { foreach (@cmd){ print; } print "TimedOut - $@\n"; warn unless $@ eq "alarm\n"; } else { foreach (@cmd){ print; } print "Timed Nicht Out\n"; } Vielen Dank Peter Last edited: 2015-03-11 16:36:08 +0100 (CET) |