diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/check_procs.c | 8 | ||||
-rw-r--r-- | plugins/t/check_procs.t | 9 |
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" ); |