--- sap.monitor 2002/07/26 10:43:47 1.9 +++ sap.monitor 2002/10/28 08:36:48 1.11 @@ -27,6 +27,8 @@ my $SAPINFO = "/usr/local/bin/sapinfo"; # number of tries to repeat sapinfo if it fails first time my $repeat = 3; +# seconds to wait between retries +my $repeat_wait = 5; my %opts; getopt('h:s:H:S:', \%opts); @@ -60,7 +62,12 @@ my $output; my $sys_id; for(my $i=0; $i<$repeat; $i++) { - $output = `$SAPINFO trace=0 ashost=$ashost sysnr=$sysnr`; + eval { + local $SIG{ALRM} = sub { die "timeout\n"; }; + alarm 30; # wait for sapinfo to finish + $output = `$SAPINFO trace=0 ashost=$ashost sysnr=$sysnr`; + }; + alarm 0; # turn alarm off undef $sys_id; if ($output =~ m/System\s+ID\s+(\w+)/i) { $sys_id = $1; @@ -68,7 +75,7 @@ } # print "$loop: $ashost $sysnr $ret\n"; $loop++; - sleep 5; + sleep $repeat_wait; } if (! $sys_id) { push @failed, "$ashost ($sysnr)";