Hello, I stumbeled over a nasty quirk from check_procs that I compiled from the sources.
To start, this constitutes my platform and build # /usr/local/src/nagios-plugins-1.4/plugins/check_procs -V check_procs (nagios-plugins 1.4) 1.43 # uname -srv Linux 2.6.9-1.667smp #1 SMP Tue Nov 2 14:59:52 EST 2004 # cat /etc/redhat-release Fedora Core release 3 (Heidelberg) # gcc -v Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.2/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --en able-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --d isable-libunwind-exceptions --enable-java-awt=gtk --host=i386-redhat-linux Thread model: posix gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3) What happens is an obvious obsolete (and deprecated) invocation of BSD style ps which causes messages on stderr # /usr/local/src/nagios-plugins-1.4/plugins/check_procs -m PROCS -C httpd -u 0 -p 1 System call sent warnings to stderr PROCS WARNING: 1 process with command name 'httpd', UID = 0 (root), PPID = 1 To see what gets written to stderr I had a look at the syscall trace. # strace -v -f -s 256 -e trace=read /usr/local/src/nagios-plugins-1.4/plugins/check_procs -m PROCS -C httpd -u 0 -p 1 2>&1|tail -6 "", 4096) = 0 --- SIGCHLD (Child exited) @ 0 (0) --- read(5, "Warning: bad syntax, perhaps a bogus \'-\'? See /usr/share/doc/procps-3.2.3/FAQ\n", 4096) = 78 read(5, "", 4096) = 0 System call sent warnings to stderr PROCS WARNING: 1 process with command name 'httpd', UID = 0 (root), PPID = 1 Ah, a helpful reference to the ps FAQ there # head /usr/share/doc/procps-3.2.3/FAQ Frequently Asked Questions about procps Why does "ps -aux" complain? According to the POSIX and UNIX standards, the above command asks to display all processes with a TTY (generally the commands users are running) plus all processes owned by a user named "x". If that user doesn't exist, then ps will assume you really meant "ps aux". The warning is given to gently break you of a habit that will cause you trouble if a user named "x" were created. And, yes ps didn't like to be invoked in an ambiguous old BSD style # ps -aux >/dev/null Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.3/FAQ But the ps hackers did provide a weird kludge (only for such a purpose made the mentioning of that env var in ps's manpage sense to me) # I_WANT_A_BROKEN_PS= ps -aux >/dev/null|wc -l 0 As long as I cannot find a fix for that in check_procs I maybe could set my environment accordingly for my Nagios checks. But how do I propagate this to the plug-in, because it doesn't work like this? # I_WANT_A_BROKEN_PS= /usr/local/src/nagios-plugins-1.4/plugins/check_procs -m PROCS -C httpd -u 0 -p 1 System call sent warnings to stderr PROCS WARNING: 1 process with command name 'httpd', UID = 0 (root), PPID = 1 # env I_WANT_A_BROKEN_PS=1 /usr/local/src/nagios-plugins-1.4/plugins/check_procs -m PROCS -C http d -u 0 -p 1 System call sent warnings to stderr PROCS WARNING: 1 process with command name 'httpd', UID = 0 (root), PPID = 1 # env -i I_WANT_A_BROKEN_PS=1 /usr/local/src/nagios-plugins-1.4/plugins/check_procs -m PROCS -C h ttpd -u 0 -p 1 System call sent warnings to stderr PROCS WARNING: 1 process with command name 'httpd', UID = 0 (root), PPID = 1 # (export I_WANT_A_BROKEN_PS=1; /usr/local/src/nagios-plugins-1.4/plugins/check_procs -m PROCS -C httpd -u 0 -p 1) System call sent warnings to stderr PROCS WARNING: 1 process with command name 'httpd', UID = 0 (root), PPID = 1 Regards Ralph ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid0944&bid$1720&dat1642 _______________________________________________ Nagios-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/nagios-users ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. ::: Messages without supporting info will risk being sent to /dev/null
