diff --git a/configure.in b/configure.in
index 1d36d35dbc50cc329e1c929e26cda4e903bc610f..912f43eded2350a4f1052f431d3d07c3219c4e78 100644 (file)
--- a/configure.in
+++ b/configure.in
AC_INIT(nagios-plugins,1.3.99)
AC_CONFIG_SRCDIR(Helper.pm)
AM_INIT_AUTOMAKE
-AM_CONFIG_HEADER(plugins/config.h)
+AC_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
RELEASE=1
AC_PROG_MAKE_SET
AC_PROG_AWK
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+jm_PREREQ_ERROR
+AC_FUNC_ERROR_AT_LINE
+
+AC_CONFIG_LIBOBJ_DIR(lib)
AC_FUNC_GETLOADAVG($topdir/lib)
ifdef([AC_FUNC_STRTOD],[AC_FUNC_STRTOD],[AM_FUNC_STRTOD])
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS -axwo 'stat uid ppid vsz rss pcpu comm args'"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl STAT UCOMM VSZ RSS USER UID PPID COMMAND
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS -weo 'stat uid ppid vsz rss pcpu comm args'"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl FreeBSD
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS waxco 'state uid ppid vsz rss pcpu command command'"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl BSD-like mode in RH 6.1
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS waxno 'state uid ppid vsz rss pcpu comm args'"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl SunOS 4.1.3:
ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS -laxnwww"
ac_cv_ps_format="%*s %d %*s %d %*s %*s %*s %d %d %*s %s %*s %*s %n%s"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl Debian Linux / procps v1.2.9:
ac_cv_ps_varlist="[&procuid,&procppid,procstat,&procvsz,&procrss,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS laxnwww"
ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl OpenBSD (needs to come early because -exo appears to work, but does not give all procs)
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS -axo 'stat uid ppid vsz rss pcpu comm args'"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
-dnl AIX 4.3.3 - needs verification. This works for Tru64 - needs %*[ +] in PS_FORMAT
+dnl Tru64 - needs %*[ +] in PS_FORMAT
elif ps -ao 'stat comm vsz rss user uid ppid args' 2>/dev/null | \
egrep -i ["^ *S[TAUES]* +[UCOMDNA]+ +[VSIZE]+ +R[S]+ +U[SER]+ +U[ID]+ +P[PID]+ +[RGSCOMDNA]+"] >/dev/null
then
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS -ao 'stat uid ppid vsz rss pcpu comm args'"
- ac_cv_ps_format="[["%s%*[ +] %d %d %d %d %f %s %n"]]"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_format=["%s%*[ +] %d %d %d %d %f %s %n"]
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
elif ps -eo 's comm vsz rss user uid ppid args' 2>/dev/null | \
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS -eo 's uid ppid vsz rss pcpu comm args'"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
+dnl AIX 4.3.3 and 5.1 do not have an rss field
+elif ps -eo 'stat uid ppid vsz pcpu comm args' 2>/dev/null | \
+ egrep -i ["^ *S[TAUES]* +UID +PPID +VSZ +%CPU +COMMAND +COMMAND"] >/dev/null
+then
+ ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procpcpu,procprog,&pos]"
+ ac_cv_ps_command="$PATH_TO_PS -eo 'stat uid ppid vsz pcpu comm args'"
+ ac_cv_ps_format="%s %d %d %d %f %s %n"
+ ac_cv_ps_cols=7
+ AC_MSG_RESULT([$ac_cv_ps_command - with no RSS])
+
elif ps -Ao 's comm vsz rss uid user ppid args' 2>/dev/null | \
egrep -i ["^S[TAUES]* +C[OMDNA]+ +V[SIZE]+ +RSS +UID +USER +PPID +[RGSCOMDNA]+"] >/dev/null
then
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS -Ao 's uid ppid vsz rss pcpu comm args'"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
elif ps -Ao 'status comm vsz rss uid user ppid args' 2>/dev/null | \
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS -Ao 'status uid ppid vsz rss pcpu comm args'"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
elif ps -Ao 'state comm vsz rss uid user ppid args' 2>/dev/null | \
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS -Ao 'state uid ppid vsz rss pcpu comm args'"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=8
AC_MSG_RESULT([$ac_cv_ps_command])
dnl wonder who takes state instead of stat
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&procpcpu,procprog,&pos]"
ac_cv_ps_command="$PATH_TO_PS -ao 'state uid ppid vsz rss pcpu command args'"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=7
AC_MSG_RESULT([$ac_cv_ps_command])
dnl IRIX 53
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&procvsz,&procrss,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS -el"
ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %d %d %*s %*s %*s %n%s"
+ ac_cv_ps_cols=7
AC_MSG_RESULT([$ac_cv_ps_command])
dnl IRIX 63
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS -el"
ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
+ ac_cv_ps_cols=5
AC_MSG_RESULT([$ac_cv_ps_command])
dnl AIX 4.1:
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS -el"
ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
+ ac_cv_ps_cols=7
AC_MSG_RESULT([$ac_cv_ps_command])
dnl AIX?
ac_cv_ps_varlist="[&procuid,&procppid,&procvsz,&procrss,procstat,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS glaxen"
ac_cv_ps_format="%*s %d %*s %d %*s %*s %d %d %*s %s %*s %*s %n%s"
+ ac_cv_ps_cols=7
AC_MSG_RESULT([$ac_cv_ps_command])
dnl MacOSX / Darwin
ac_cv_ps_command="$PATH_TO_PS wwaxo 'state vsz rss uid ppid pcpu ucomm command'"
ac_cv_ps_varlist="[procstat,&procvsz,&procrss,&procuid,&procppid,&procpcpu,procprog,&pos]"
ac_cv_ps_format="%s %d %d %d %d %f %s %n"
- EXTRAS="$EXTRAS check_nagios"
+ ac_cv_ps_cols=7
AC_MSG_RESULT([$ac_cv_ps_command])
dnl UnixWare
ac_cv_ps_varlist="[procstat,&procuid,&procppid,&pos,procprog]"
ac_cv_ps_command="$PATH_TO_PS -Al"
ac_cv_ps_format="%*s %s %d %*s %d %*s %*s %*s %*s %*s %*s %*s %*s %*s %n%s"
- #if ps -Ao 'vsz comm' 2>/dev/null | \
- # egrep -i ["^ *VSZ +COMMAND"] >/dev/null
- #then
- # ac_cv_vsz_command="$PATH_TO_PS -Ao 'vsz comm'"
- # ac_cv_vsz_format="%*s %d"
- #fi
+ ac_cv_ps_cols=7
AC_MSG_RESULT([$ac_cv_ps_command])
else
- AC_MSG_WARN([unable to find usable ps syntax])
+ AC_MSG_WARN([unable to find usable ps syntax - check_procs and check_nagios will not be compiled])
fi
-AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
- [Variable list for sscanf of 'ps' output])
-AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
- [Verbatim command to execute for ps in check_procs])
-AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
- [Format string for scanning ps output in check_procs])
-
-AC_PATH_PROG(PATH_TO_DF,df)
-AC_PATH_PROG(PATH_TO_BDF,bdf)
-
-AC_ARG_WITH(df_command,
- ACX_HELP_STRING([--with-df-command=SYNTAX],
- [sets syntax for df]),
- with_df_command=$withval,)
-
-AC_MSG_CHECKING(for df syntax)
-if test -n "$with_df_command"
-then
- AC_MSG_RESULT([$with_df_command])
-
-elif df -Pk 2>/dev/null | egrep -i ["^(/dev/|[a-zA-Z]:)[a-z0-9/\\]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/\\]*"] >/dev/null
-then
- with_df_command="$PATH_TO_DF -Pk"
- AC_MSG_RESULT([$with_df_command])
-
-elif df -k 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
-then
- with_df_command="$PATH_TO_DF -k"
- AC_MSG_RESULT([$with_df_command])
-
-elif df 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
-then
- with_df_command="$PATH_TO_DF"
- AC_MSG_RESULT([$with_df_command])
-
-elif bdf 2>/dev/null | egrep -i ["^/dev/[a-z0-9/]+ +[0-9]+ +[0-9]+ +[0-9]+ +[0-9]+% +/[a-z0-9/]*"] >/dev/null
-then
- with_df_command="$PATH_TO_BDF"
- AC_MSG_RESULT([$with_df_command])
-
-else
- AC_MSG_WARN([unable to find usable df syntax])
+if test -n $ac_cv_ps_varlist ; then
+ AC_DEFINE_UNQUOTED(PS_VARLIST,$ac_cv_ps_varlist,
+ [Variable list for sscanf of 'ps' output])
+ AC_DEFINE_UNQUOTED(PS_COMMAND,"$ac_cv_ps_command",
+ [Verbatim command to execute for ps in check_procs])
+ AC_DEFINE_UNQUOTED(PS_FORMAT,"$ac_cv_ps_format",
+ [Format string for scanning ps output in check_procs])
+ AC_DEFINE_UNQUOTED(PS_COLS,$ac_cv_ps_cols,
+ [Number of columns in ps command])
+ EXTRAS="$EXTRAS check_procs check_nagios"
fi
-AC_DEFINE_UNQUOTED(DF_COMMAND,"$with_df_command",[path and args for df command])
-
dnl jm_AFS
jm_LIST_MOUNTED_FILESYSTEMS([list_mounted_fs=yes], [list_mounted_fs=no])
jm_FSTYPENAME
dnl SWAP info required is amount allocated/available and amount free
dnl The plugin works through all the swap devices and adds up the total swap
dnl available.
-
-dnl dunno why this does not work below - use hack (kbd)
-dnl fine on linux, broken on solaris
-dnl if /bin/test -e "/proc/meminfo"
-
AC_PATH_PROG(PATH_TO_SWAP,swap)
-AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
-
-AC_MSG_CHECKING(for how to check memory)
-if [cat /proc/meminfo > /dev/null 2>&1]
+if (test -n "$PATH_TO_SWAP")
then
- AC_MSG_RESULT([found /proc/meminfo])
- AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
- AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
- EXTRAS="$EXTRAS check_swap"
-
-elif [$PATH_TO_SWAP -l 2>&1 >/dev/null]
+AC_MSG_CHECKING([for $PATH_TO_SWAP format])
+if [$PATH_TO_SWAP -l 2>&1 >/dev/null]
then
ac_cv_have_swap=yes
ac_cv_swap_command="$PATH_TO_SWAP -l"
fi
EXTRAS="$EXTRAS check_swap"
+fi
+dnl end if for PATH_TO_SWAP
+fi
-elif [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
+AC_PATH_PROG(PATH_TO_SWAPINFO,swapinfo)
+if (test -n "$PATH_TO_SWAPINFO")
+then
+AC_MSG_CHECKING([for $PATH_TO_SWAPINFO format])
+if [$PATH_TO_SWAPINFO -k 2>&1 | egrep -i "^Device" >/dev/null]
then
ac_cv_have_swap=yes
ac_cv_swap_command="$PATH_TO_SWAPINFO -k"
ac_cv_swap_conv=1024
AC_MSG_RESULT([using HP-UX format swapinfo])
fi
+dnl end if for PATH_TO_SWAPINFO
+fi
+
+AC_PATH_PROG(PATH_TO_LSPS,lsps)
+if (test -n "$PATH_TO_LSPS")
+then
+AC_MSG_CHECKING([for $PATH_TO_LSPS format])
+if [$PATH_TO_LSPS -a 2>/dev/null | egrep -i "^Page Space" > /dev/null]
+then
+ ac_cv_have_swap=yes
+ ac_cv_swap_command="$PATH_TO_LSPS -a"
+ ac_cv_swap_format=["%*s %*s %*s %d%*s %d %*s"]
+ ac_cv_swap_conv=1
+ AC_MSG_RESULT([using AIX lsps])
+fi
+dnl end if for PATH_TO_SWAPINFO
+fi
if test "x$ac_cv_have_swap" != "x"
then
[Conversion factor to MB])
fi
+dnl dunno why this does not work below - use hack (kbd)
+dnl fine on linux, broken on solaris
+dnl if /bin/test -e "/proc/meminfo"
+AC_MSG_CHECKING([for /proc/meminfo])
+if [cat /proc/meminfo > /dev/null 2>&1]
+then
+ AC_MSG_RESULT([found /proc/meminfo])
+ AC_DEFINE(HAVE_PROC_MEMINFO,1,[Define if we have /proc/meminfo])
+ AC_DEFINE_UNQUOTED(PROC_MEMINFO,"/proc/meminfo",[path to /proc/meminfo if name changes])
+ EXTRAS="$EXTRAS check_swap"
+else
+ AC_MSG_RESULT([no])
+fi
+
AC_PATH_PROG(PATH_TO_DIG,dig)
AC_DEFINE_UNQUOTED(PATH_TO_DIG,"$PATH_TO_DIG",[Path to dig command, if present])
if test -n "$PATH_TO_DIG"; then