diff options
author | Sven Nierlein <sven@nierlein.de> | 2017-03-10 19:37:23 +0100 |
---|---|---|
committer | Sven Nierlein <sven@nierlein.de> | 2017-03-12 22:55:52 +0100 |
commit | 3b962208e790e859ce68346379020ca92251c0a2 (patch) | |
tree | 61adacfcc914f7c8a1ada310dad630b79445cd7a /plugins-scripts | |
parent | b3dee5c4bf9909c44a43dea0d27475cdbf79f243 (diff) | |
download | monitoring-plugins-3b962208e790e859ce68346379020ca92251c0a2.tar.gz |
fix timeout issue with check_disk_smb
check_disk_smb hangs if the smbclient is still running. So send a sigint to all
childs and exit cleanly.
Signed-off-by: Sven Nierlein <sven@nierlein.de>
Diffstat (limited to 'plugins-scripts')
-rwxr-xr-x | plugins-scripts/check_disk_smb.pl | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/plugins-scripts/check_disk_smb.pl b/plugins-scripts/check_disk_smb.pl index 98992268..28c49e84 100755 --- a/plugins-scripts/check_disk_smb.pl +++ b/plugins-scripts/check_disk_smb.pl | |||
@@ -19,7 +19,7 @@ | |||
19 | # | 19 | # |
20 | 20 | ||
21 | require 5.004; | 21 | require 5.004; |
22 | use POSIX; | 22 | use POSIX qw(setsid); |
23 | use strict; | 23 | use strict; |
24 | use Getopt::Long; | 24 | use Getopt::Long; |
25 | use vars qw($opt_P $opt_V $opt_h $opt_H $opt_s $opt_W $opt_u $opt_p $opt_w $opt_c $opt_a $verbose); | 25 | use vars qw($opt_P $opt_V $opt_h $opt_H $opt_s $opt_W $opt_u $opt_p $opt_w $opt_c $opt_a $verbose); |
@@ -28,6 +28,9 @@ use FindBin; | |||
28 | use lib "$FindBin::Bin"; | 28 | use lib "$FindBin::Bin"; |
29 | use utils qw($TIMEOUT %ERRORS &print_revision &support &usage); | 29 | use utils qw($TIMEOUT %ERRORS &print_revision &support &usage); |
30 | 30 | ||
31 | # make us session leader which makes all childs exit if we do | ||
32 | setsid; | ||
33 | |||
31 | sub print_help (); | 34 | sub print_help (); |
32 | sub print_usage (); | 35 | sub print_usage (); |
33 | 36 | ||
@@ -175,6 +178,8 @@ my @lines = undef; | |||
175 | # Just in case of problems, let's not hang the monitoring system | 178 | # Just in case of problems, let's not hang the monitoring system |
176 | $SIG{'ALRM'} = sub { | 179 | $SIG{'ALRM'} = sub { |
177 | print "No Answer from Client\n"; | 180 | print "No Answer from Client\n"; |
181 | $SIG{'INT'} = 'IGNORE'; | ||
182 | kill(-2, $$); | ||
178 | exit $ERRORS{"UNKNOWN"}; | 183 | exit $ERRORS{"UNKNOWN"}; |
179 | }; | 184 | }; |
180 | alarm($TIMEOUT); | 185 | alarm($TIMEOUT); |