aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/check_procs.c8
-rw-r--r--plugins/t/check_procs.t9
2 files changed, 16 insertions, 1 deletions
diff --git a/plugins/check_procs.c b/plugins/check_procs.c
index d20b027f..c2239dba 100644
--- a/plugins/check_procs.c
+++ b/plugins/check_procs.c
@@ -123,6 +123,7 @@ main (int argc, char **argv)
char *procprog;
pid_t mypid = 0;
+ pid_t myppid = 0;
struct stat statbuf;
dev_t mydev = 0;
ino_t myino = 0;
@@ -172,6 +173,7 @@ main (int argc, char **argv)
/* find ourself */
mypid = getpid();
+ myppid = getppid();
if (usepid || stat_exe(mypid, &statbuf) == -1) {
/* usepid might have been set by -T */
usepid = 1;
@@ -241,6 +243,12 @@ main (int argc, char **argv)
printf("not considering - is myself or gone\n");
continue;
}
+ /* Ignore parent*/
+ else if (myppid == procpid) {
+ if (verbose >= 3)
+ printf("not considering - is parent\n");
+ continue;
+ }
/* filter kernel threads (childs of KTHREAD_PARENT)*/
/* TODO adapt for other OSes than GNU/Linux
diff --git a/plugins/t/check_procs.t b/plugins/t/check_procs.t
index 1dea5643..e0479ea0 100644
--- a/plugins/t/check_procs.t
+++ b/plugins/t/check_procs.t
@@ -13,7 +13,7 @@ my $t;
if (`uname -s` eq "SunOS\n" && ! -x "/usr/local/nagios/libexec/pst3") {
plan skip_all => "Ignoring tests on solaris because of pst3";
} else {
- plan tests => 12;
+ plan tests => 14;
}
my $result;
@@ -26,6 +26,13 @@ $result = NPTest->testCmd( "./check_procs -w 100000 -c 100000 -s Z" );
is( $result->return_code, 0, "Checking less than 100000 zombie processes" );
like( $result->output, '/^PROCS OK: [0-9]+ process(es)? with /', "Output correct" );
+SKIP: {
+ skip "No bash available", 2 unless(system("which bash > /dev/null") == 0);
+ $result = NPTest->testCmd( "bash -c './check_procs -a '/sbin/init'; true'" );
+ is( $result->return_code, 0, "Parent process is ignored" );
+ like( $result->output, '/^PROCS OK: 1 process?/', "Output correct" );
+
+}
$result = NPTest->testCmd( "./check_procs -w 0 -c 100000" );
is( $result->return_code, 1, "Checking warning if processes > 0" );
like( $result->output, '/^PROCS WARNING: [0-9]+ process(es)? | procs=[0-9]+;0;100000;0;$/', "Output correct" );