summaryrefslogtreecommitdiffstats
path: root/plugins-scripts/check_disk_smb.pl
diff options
context:
space:
mode:
Diffstat (limited to 'plugins-scripts/check_disk_smb.pl')
-rwxr-xr-xplugins-scripts/check_disk_smb.pl12
1 files changed, 8 insertions, 4 deletions
diff --git a/plugins-scripts/check_disk_smb.pl b/plugins-scripts/check_disk_smb.pl
index 4805434..28c49e8 100755
--- a/plugins-scripts/check_disk_smb.pl
+++ b/plugins-scripts/check_disk_smb.pl
@@ -19,16 +19,18 @@
19# 19#
20 20
21require 5.004; 21require 5.004;
22use POSIX; 22use POSIX qw(setsid);
23use strict; 23use strict;
24use Getopt::Long; 24use Getopt::Long;
25use 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); 25use 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);
26use vars qw($PROGNAME); 26use vars qw($PROGNAME);
27use FindBin; 27use FindBin;
28use lib "$FindBin::Bin"; 28use lib "$FindBin::Bin";
29use lib '@libexecdir@';
30use utils qw($TIMEOUT %ERRORS &print_revision &support &usage); 29use utils qw($TIMEOUT %ERRORS &print_revision &support &usage);
31 30
31# make us session leader which makes all childs exit if we do
32setsid;
33
32sub print_help (); 34sub print_help ();
33sub print_usage (); 35sub print_usage ();
34 36
@@ -55,10 +57,10 @@ GetOptions
55 57
56if ($opt_V) { 58if ($opt_V) {
57 print_revision($PROGNAME,'@NP_VERSION@'); #' 59 print_revision($PROGNAME,'@NP_VERSION@'); #'
58 exit $ERRORS{'OK'}; 60 exit $ERRORS{'UNKNOWN'};
59} 61}
60 62
61if ($opt_h) {print_help(); exit $ERRORS{'OK'};} 63if ($opt_h) {print_help(); exit $ERRORS{'UNKNOWN'};}
62 64
63my $smbclient = $utils::PATH_TO_SMBCLIENT; 65my $smbclient = $utils::PATH_TO_SMBCLIENT;
64$smbclient || usage("check requires smbclient, smbclient not set\n"); 66$smbclient || usage("check requires smbclient, smbclient not set\n");
@@ -176,6 +178,8 @@ my @lines = undef;
176# 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
177$SIG{'ALRM'} = sub { 179$SIG{'ALRM'} = sub {
178 print "No Answer from Client\n"; 180 print "No Answer from Client\n";
181 $SIG{'INT'} = 'IGNORE';
182 kill(-2, $$);
179 exit $ERRORS{"UNKNOWN"}; 183 exit $ERRORS{"UNKNOWN"};
180}; 184};
181alarm($TIMEOUT); 185alarm($TIMEOUT);