projects
/
mirror
/
dsa-nagios.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
skip processes that are in a different pid namespace
[mirror/dsa-nagios.git]
/
dsa-nagios-checks
/
checks
/
dsa-check-libs
diff --git
a/dsa-nagios-checks/checks/dsa-check-libs
b/dsa-nagios-checks/checks/dsa-check-libs
index
fd9e338
..
da26cdc
100755
(executable)
--- a/
dsa-nagios-checks/checks/dsa-check-libs
+++ b/
dsa-nagios-checks/checks/dsa-check-libs
@@
-52,16
+52,18
@@
if (!GetOptions (
'--help' => \$params->{'help'},
'--version' => \$params->{'version'},
'--quiet' => \$params->{'quiet'},
'--help' => \$params->{'help'},
'--version' => \$params->{'version'},
'--quiet' => \$params->{'quiet'},
+ '--ignore-pid-namespaces' => \$params->{'ignore_pid_namespaces'},
'--verbose' => \$params->{'verbose'},
'-v' => \$params->{'verbose'},
'--config=s' => \$params->{'config'},
)) {
'--verbose' => \$params->{'verbose'},
'-v' => \$params->{'verbose'},
'--config=s' => \$params->{'config'},
)) {
- dief ("$PROGRAM_NAME: Usage: $PROGRAM_NAME [--help|--version] [--verbose] [--quiet] [--config=<CONFIGFILE>]\n");
+ dief ("$PROGRAM_NAME: Usage: $PROGRAM_NAME [--help|--version] [--
ignore-pid-namespaces] [--
verbose] [--quiet] [--config=<CONFIGFILE>]\n");
};
if ($params->{'help'}) {
};
if ($params->{'help'}) {
- print "$PROGRAM_NAME: Usage: $PROGRAM_NAME [--help|--version] [--verbose] [--quiet] [--config=<CONFIGFILE>]\n";
+ print "$PROGRAM_NAME: Usage: $PROGRAM_NAME [--help|--version] [--
ignore-pid-namespaces] [--
verbose] [--quiet] [--config=<CONFIGFILE>]\n";
print "Reports processes that are linked against libraries that no longer exist.\n";
print "The optional config file can specify ignore rules - see the sample config file.\n";
print "Reports processes that are linked against libraries that no longer exist.\n";
print "The optional config file can specify ignore rules - see the sample config file.\n";
+ print "Can optionally ignore processes from other PID namespaces.\n";
exit (0);
};
if ($params->{'version'}) {
exit (0);
};
if ($params->{'version'}) {
@@
-142,6
+144,12
@@
sub inVserver() {
my $INVSERVER = inVserver();
my $INVSERVER = inVserver();
+my $PID_NS_SUPPORT = (-f '/proc/self/ns/pid');
+my $PID_NS;
+if ($PID_NS_SUPPORT and $params->{'ignore_pid_namespaces'}) {
+ $PID_NS = readlink('/proc/self/ns/pid');
+}
+
print STDERR "Running $LSOF -n\n" if $params->{'verbose'};
open (LSOF, "$LSOF -n 2>/dev/null|") or dief ("Cannot run $LSOF -n: $!\n");
my @lsof=<LSOF>;
print STDERR "Running $LSOF -n\n" if $params->{'verbose'};
open (LSOF, "$LSOF -n 2>/dev/null|") or dief ("Cannot run $LSOF -n: $!\n");
my @lsof=<LSOF>;
@@
-160,6
+168,11
@@
LINE: for my $line (@lsof) {
next;
}
next;
}
+ if ($PID_NS_SUPPORT and $params->{'ignore_pid_namespaces'}) {
+ my $pidns = readlink('/proc/'.$pid.'/ns/pid');
+ next if (defined $pidns and $PID_NS ne $pidns);
+ }
+
unless ( $line =~ /^f/ ) {
dief("UNKNOWN strange line read from lsof\n");
# don't print it because it contains NULL characters...
unless ( $line =~ /^f/ ) {
dief("UNKNOWN strange line read from lsof\n");
# don't print it because it contains NULL characters...