From 4ad5dcce03df2e0167c8aae6f9f5debfe173f5a4 Mon Sep 17 00:00:00 2001 From: Ton Voon Date: Tue, 6 Mar 2007 17:29:15 +0000 Subject: [PATCH] Use /usr/ucb/ps on Solaris in preference to pst3 (problems in 64bit mode) git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1629 f882894a-f735-0410-b71e-b25c423dba1c --- NEWS | 3 ++- configure.in | 32 +++++++++----------------------- plugins/check_procs.c | 2 +- 3 files changed, 12 insertions(+), 25 deletions(-) diff --git a/NEWS b/NEWS index 310c08b..184d4ec 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,7 @@ This file documents the major additions and syntax changes between releases. -?? ?? +1.4.7 ?? + check_procs uses /usr/ucb/ps if available - fixes pst3 problems on Solaris Fixed MKINSTALLDIRS problem in po/ Root plugins installed with world executable ./configure now detects if possible to compile check_mysql diff --git a/configure.in b/configure.in index b0d1c97..3b8db84 100644 --- a/configure.in +++ b/configure.in @@ -493,30 +493,16 @@ if test -n "$PS_COMMAND" && test -n "$PS_FORMAT" && test -n "$PS_COLS" && test - ac_cv_ps_cols="$PS_COLS" AC_MSG_RESULT([(command-line) $ac_cv_ps_command]) -dnl Now using the pst3/kmem hack for solaris systems to avoid truncation -elif test "$ac_cv_uname_s" = "SunOS"; then - # - # this is a very, very ugly hack, to hardcode the location for plugins - # - if test "$libexecdir" = '${exec_prefix}/libexec'; then - if test "$exec_prefix" = "NONE"; then - if test "$prefix" = "NONE"; then - pst3="$ac_default_prefix/libexec/pst3" - else - pst3="$prefix/libexec/pst3" - fi - else - pst3="$exec_prefix/libexec/pst3" - fi - else - pst3="$libexecdir/pst3" - fi - ac_cv_ps_command="$pst3" - ac_cv_ps_format="%s %d %d %d %d %f %s %n" - ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]" +dnl Using /usr/ucb/ps on Solaris systems, to avoid truncation +dnl Limitation that command name is not available +elif test "$ac_cv_uname_s" = "SunOS" && /usr/ucb/ps -alxwwn 2>/dev/null | \ + egrep -i ["^ *F +UID +PID +PPID +%C +PRI +NI +SZ +RSS +WCHAN +S +TT +TIME +COMMAND"] > /dev/null +then + ac_cv_ps_varlist="[&procuid,&procpid,&procppid,&procpcpu,&procvsz,&procrss,procstat,&pos]" + ac_cv_ps_command="/usr/ucb/ps -alxwwn" + ac_cv_ps_format=["%*s %d %d %d %d %*d %*d %d %d%*[ 0123456789abcdef]%[OSRZT]%*s %*s %n"] ac_cv_ps_cols=8 - AC_MSG_RESULT([using nagios-plugins internal ps for solaris]) - EXTRAS_ROOT="$EXTRAS_ROOT pst3" + AC_MSG_RESULT([$ac_cv_ps_command]) dnl Some gnu/linux systems (debian for one) don't like -axwo and need axwo. dnl so test for this first... diff --git a/plugins/check_procs.c b/plugins/check_procs.c index da7e9f0..2e28328 100644 --- a/plugins/check_procs.c +++ b/plugins/check_procs.c @@ -200,7 +200,7 @@ main (int argc, char **argv) procseconds = convert_to_seconds(procetime); if (verbose >= 3) - printf ("%d %d %d %d %d %d %.2f %s %s %s %s\n", + printf ("proc#=%d uid=%d vsz=%d rss=%d pid=%d ppid=%d pcpu=%.2f stat=%s etime=%s prog=%s args=%s\n", procs, procuid, procvsz, procrss, procpid, procppid, procpcpu, procstat, procetime, procprog, procargs); -- 2.30.2