From 4ad5dcce03df2e0167c8aae6f9f5debfe173f5a4 Mon Sep 17 00:00:00 2001
From: Ton Voon <tonvoon@users.sourceforge.net>
Date: Tue, 6 Mar 2007 17:29:15 +0000
Subject: 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

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);
-- 
cgit v0.10-9-g596f

