[Pkg-nagios-devel] Bug#626913: Bug#626913: nagios-nrpe-server: different process count when invoking check_procs if default shell is /bin/dash instead of /bin/bash
Tollef Fog Heen
tfheen at err.no
Wed May 18 06:10:47 UTC 2011
]] Massimiliano Ferrero
| If default shell is /bin/dash then all check_procs commands run though
| nrpe daemon return a +1 value in the number of processes they count
| i.e. if there is one /usr/sbin/acpid process running the check will
| return 2, more seriously if there are none the check will return one,
| so if the check is used to restart dead daemons this won't be done
| anymore.
|
| The problem is dash-related: this can be easily verified by running
The problem seems to be:
With bash:
: tfheen at qurzaw /tmp > /bin/bash -c "/usr/lib/nagios/plugins/check_procs -vvv -c 1: -a '/sbin/init'"
[...]
S+ 1000 30206 18709 11272 808 0.0 00:00 check_procs /usr/lib/nagios/plugins/check_procs -vvv -c 1: -a /sbin/initproc#=0 uid=1000 vsz=11272 rss=808 pid=30206 ppid=18709 pcpu=0.00 stat=S+ etime=00:00 prog=check_procs args=/usr/lib/nagios/plugins/check_procs -vvv -c 1: -a /sbin/init
vs with dash:
: tfheen at qurzaw /tmp > /bin/dash -c "/usr/lib/nagios/plugins/check_procs -vvv -c 1: -a '/sbin/init'"
S+ 1000 30129 18709 4140 584 0.0 00:00 dash /bin/dash -c /usr/lib/nagios/plugins/check_procs -vvv -c 1: -a '/sbin/init'proc#=0 uid=1000 vsz=4140 rss=584 pid=30129 ppid=18709 pcpu=0.00 stat=S+ etime=00:00 prog=dash args=/bin/dash -c /usr/lib/nagios/plugins/check_procs -vvv -c 1: -a '/sbin/init'
Matched: uid=1000 vsz=4140 rss=584 pid=30129 ppid=18709 pcpu=0.00 stat=S+ etime=00:00 prog=dash args=/bin/dash -c /usr/lib/nagios/plugins/check_procs -vvv -c 1: -a '/sbin/init'
S+ 1000 30130 30129 11272 800 0.0 00:00 check_procs /usr/lib/nagios/plugins/check_procs -vvv -c 1: -a /sbin/initproc#=1 uid=1000 vsz=11272 rss=800 pid=30130 ppid=30129 pcpu=0.00 stat=S+ etime=00:00 prog=check_procs args=/usr/lib/nagios/plugins/check_procs -vvv -c 1: -a /sbin/init
you probably want to use a stricter match, such as
/bin/dash -c "/usr/lib/nagios/plugins/check_procs -vvv -c 1: --ereg-argument-array=^/sbin/init"
This will only match processes whose command line starts with /sbin/init
and not those where it's part of the command line.
I'm not entirely convinced this is a bug in check_procs at all, if
anything, it'd be a (minor, I think) bug in dash.
Note that you can get the same behaviour from bash by doing something
like:
/bin/bash -c "/usr/lib/nagios/plugins/check_procs -vvv -c 1: -a '/sbin/init'; true"
where bash won't just exec() a simple command, but will stay around
until the last command has run.
--
Tollef Fog Heen
UNIX is user friendly, it's just picky about who its friends are
More information about the Pkg-nagios-devel
mailing list