Thread alarm Output auf AIX (4 answers)
Opened by peterb at 2015-03-11 16:16

peterb
 2015-03-11 16:16
#180119 #180119
User since
2010-05-19
42 Artikel
BenutzerIn
[default_avatar]
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)

View full thread alarm Output auf AIX