[csw-devel] SF.net SVN: gar:[6611] csw/mgar/pkg/nagios/trunk
j_arndt at users.sourceforge.net
j_arndt at users.sourceforge.net
Tue Sep 29 17:45:38 CEST 2009
Revision: 6611
http://gar.svn.sourceforge.net/gar/?rev=6611&view=rev
Author: j_arndt
Date: 2009-09-29 15:45:36 +0000 (Tue, 29 Sep 2009)
Log Message:
-----------
nagios: improved start / stop script, fix in prototype
Modified Paths:
--------------
csw/mgar/pkg/nagios/trunk/checksums
csw/mgar/pkg/nagios/trunk/files/CSWnagios.preinstall
csw/mgar/pkg/nagios/trunk/files/CSWnagios.prototype
csw/mgar/pkg/nagios/trunk/files/cswnagios
Removed Paths:
-------------
csw/mgar/pkg/nagios/trunk/files/nagios
Modified: csw/mgar/pkg/nagios/trunk/checksums
===================================================================
--- csw/mgar/pkg/nagios/trunk/checksums 2009-09-29 15:28:52 UTC (rev 6610)
+++ csw/mgar/pkg/nagios/trunk/checksums 2009-09-29 15:45:36 UTC (rev 6611)
@@ -1,9 +1,9 @@
e407a4b179bd7de72b3e8c21f309f9b7 download/CSWnagios.checkinstall
-db3f392c725ae6e9a3f5a969d2527b41 download/CSWnagios.preinstall
+5185cf1fded86e414e134710f075f4ed download/CSWnagios.preinstall
92437323de0cceaa58c6238ec9e6c954 download/CSWnagios.preremove
-8d38acdcd6d31711af14ad09e537ea20 download/CSWnagios.prototype
+4aa71b54c0fa268116a41abc7f3f2b5d download/CSWnagios.prototype
e493345589ac2c592c2b958499bc8c20 download/configure.diff
-d3b39178a60cf866a243d4d8f8eabb9b download/cswnagios
+1d43a15b685160919b82b181c118cbae download/cswnagios
f3161bcb7c65f89707ee37b0a8d861d5 download/install-opts.diff
3566167cc60ddeaad34e7d2e26ed4a58 download/nagios-3.2.0.tar.gz
91407bdea2047b6ff5a1542550933144 download/patch.diff
Modified: csw/mgar/pkg/nagios/trunk/files/CSWnagios.preinstall
===================================================================
--- csw/mgar/pkg/nagios/trunk/files/CSWnagios.preinstall 2009-09-29 15:28:52 UTC (rev 6610)
+++ csw/mgar/pkg/nagios/trunk/files/CSWnagios.preinstall 2009-09-29 15:45:36 UTC (rev 6611)
@@ -4,8 +4,31 @@
# 2007-09-11 Fix PKG_INSTALL_ROOT usage. BASEDIR is not used for non
# relocatable packages.
+
echo "Executing preinstall"
+cat << EOF
+
+=======================================================================
+
+From Nagios 3.2.0 on the configuration and log files for the OpenCSW
+package are stored in /etc/opt/csw/nagios/ and /var/opt/csw/nagios/.
+
+Changes you made to your existing config will automatically
+moved to the new location.
+
+
+Please be aware, that it's very likely that you have to change your
+nagios.cfg to that changes.
+
+ Installation will proceed in 30 seconds.
+ Press CTRL+C if you want to stop now.
+
+=======================================================================
+EOF
+
+sleep 30
+
#If installing package on a filesystem tree not running the OS; then exit.
if [ ! x"$PKG_INSTALL_ROOT" = x"" ] ; then exit 0 ; fi
@@ -31,17 +54,5 @@
/usr/sbin/usermod -G nagioscm nagios
fi
-cat << EOF
-=======================================================================
-
-Configuration files were moved from /opt/csw/nagios/etc/ to
-/etc/opt/csw/nagios/.
-
-Changes which were made to the existing config will automatically
-moved to the new location.
-
-=======================================================================
-EOF
-
exit 0
Modified: csw/mgar/pkg/nagios/trunk/files/CSWnagios.prototype
===================================================================
--- csw/mgar/pkg/nagios/trunk/files/CSWnagios.prototype 2009-09-29 15:28:52 UTC (rev 6610)
+++ csw/mgar/pkg/nagios/trunk/files/CSWnagios.prototype 2009-09-29 15:45:36 UTC (rev 6611)
@@ -4,7 +4,7 @@
d none /opt/csw/nagios/bin 0755 nagios nagios
f none /opt/csw/nagios/bin/nagios 0754 nagios nagios
f none /opt/csw/nagios/bin/nagiostats 0754 nagios nagios
-f none /opt/csw/nagios/bin/p1.pl 075 nagios nagios
+f none /opt/csw/nagios/bin/p1.pl 0754 nagios nagios
d none /etc/opt/csw/nagios 0755 nagios nagios
f cswpreserveconf /etc/opt/csw/nagios/cgi.cfg.CSW 0644 nagios nagios
f none /etc/opt/csw/nagios/httpd-nagios.conf 0644 nagios nagios
Modified: csw/mgar/pkg/nagios/trunk/files/cswnagios
===================================================================
--- csw/mgar/pkg/nagios/trunk/files/cswnagios 2009-09-29 15:28:52 UTC (rev 6610)
+++ csw/mgar/pkg/nagios/trunk/files/cswnagios 2009-09-29 15:45:36 UTC (rev 6611)
@@ -28,26 +28,28 @@
#
# Modified for CSW by Alex Moore 2006-02-27
# Modified for OpenCSW by Juergen Arndt 2009-03-11
+#
+# 2009-09-24 Alexander Skwar <alexander at skwar.name>
+# - Load Solaris SMF file, if present
+# - Use SMF exitcodes, if SMF file was loaded
+# - use printf instead of "echo -n"
#FMRI application # FMRI path for service, see http://wiki.opencsw.org/cswclassutils-package#toc0
+# Load Solaris SMF Variables
+test -r /lib/svc/share/smf_include.sh && . /lib/svc/share/smf_include.sh
+
status_nagios ()
{
- if test ! -f $NagiosRun; then
- echo "No lock file found in $NagiosRun"
- return 1
- fi
-
- NagiosPID=`head -n 1 $NagiosRun`
if test -x $NagiosCGI/daemonchk.cgi; then
- if $NagiosCGI/daemonchk.cgi -l $NagiosRun; then
+ if $NagiosCGI/daemonchk.cgi -l $NagiosRunFile; then
return 0
else
return 1
fi
else
- if ps -p $NagiosPID; then
+ if ps -p $NagiosPID > /dev/null 2>&1; then
return 0
else
return 1
@@ -57,20 +59,40 @@
return 1
}
+printstatus_nagios()
+{
+ if status_nagios $1 $2; then
+ echo "nagios (pid $NagiosPID) is running..."
+ else
+ echo "nagios is not running"
+ fi
+}
+
killproc_nagios ()
{
- if [ ! -f $NagiosRun ]; then
- echo "No lock file found in $NagiosRun"
+ if [ ! -f $NagiosRunFile ]; then
+ echo "No lock file found in $NagiosRunFile"
return 1
fi
- NagiosPID=`head -n 1 $NagiosRun`
+ NagiosPID=`head -n 1 $NagiosRunFile`
kill $2 $NagiosPID
}
+pid_nagios ()
+{
+ if test ! -f $NagiosRunFile; then
+ echo "No lock file found in $NagiosRunFile"
+ test -z "$SMF_EXIT_ERR_FATAL" && exit 1
+ test -n "$SMF_EXIT_ERR_FATAL" && exit $SMF_EXIT_ERR_FATAL
+ fi
+
+ NagiosPID=`head -n 1 $NagiosRunFile`
+}
+
# Source function library
# Solaris doesn't have an rc.d directory, so do a test first
if [ -f /etc/rc.d/init.d/functions ]; then
@@ -81,91 +103,146 @@
prefix=/opt/csw/nagios
exec_prefix=${prefix}
+NagiosVarDir=/var/${prefix}
NagiosBin=${exec_prefix}/bin/nagios
-NagiosCfg=${prefix}/etc/nagios.cfg
-NagiosLog=${prefix}/var/status.log
-NagiosTmp=${prefix}/var/nagios.tmp
-NagiosSav=${prefix}/var/status.sav
-NagiosCmd=${prefix}/var/rw/nagios.cmd
-NagiosVar=${prefix}/var
-NagiosRun=${prefix}/var/nagios.lock
-NagiosLckDir=/var/lock/subsys
-NagiosLckFile=nagios
-NagiosCGI=${exec_prefix}/sbin
-Nagios=nagios
-
+NagiosCfgFile=/etc/${prefix}/nagios.cfg
+NagiosStatusFile=${NagiosVarDir}/status.dat
+NagiosRetentionFile=${NagiosVarDir}/retention.dat
+NagiosCommandFile=${NagiosVarDir}/rw/nagios.cmd
+NagiosRunFile=${NagiosVarDir}/nagios.lock
+NagiosLockDir=/var/lock/subsys
+NagiosLockFile=nagios
+NagiosCGIDir=${exec_prefix}/sbin
+NagiosUser=nagios
+NagiosGroup=nagios
# Check that nagios exists.
-test -f $NagiosBin || exit 0
+if [ ! -f $NagiosBin ]; then
+ echo "Executable file $NagiosBin not found. Exiting."
+ test -z "$SMF_EXIT_ERR_FATAL" && exit 1
+ test -n "$SMF_EXIT_ERR_FATAL" && exit $SMF_EXIT_ERR_FATAL
+fi
# Check that nagios.cfg exists.
-test -f $NagiosCfg || exit 0
+if [ ! -f $NagiosCfgFile ]; then
+ echo "Configuration file $NagiosCfgFile not found. Exiting."
+ test -z "$SMF_EXIT_ERR_CONFIG" && exit 1
+ test -n "$SMF_EXIT_ERR_CONFIG" && exit $SMF_EXIT_ERR_CONFIG
+fi
# See how we were called.
case "$1" in
start)
- echo "Starting network monitor: nagios"
- su - $Nagios -c "touch $NagiosVar/nagios.log $NagiosSav"
- rm -f $NagiosCmd
- $NagiosBin -d $NagiosCfg
- if [ -d $NagiosLckDir ]; then touch $NagiosLckDir/$NagiosLckFile; fi
- sleep 1
- status_nagios nagios
+ printf "Starting nagios:"
+ $NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
+ if [ $? -eq 0 ]; then
+ su - $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile"
+ rm -f $NagiosCommandFile
+ touch $NagiosRunFile
+ chown $NagiosUser:$NagiosGroup $NagiosRunFile
+ $NagiosBin -d $NagiosCfgFile
+ if [ -d $NagiosLockDir ]; then touch $NagiosLockDir/$NagiosLockFile; fi
+ echo " done."
+ test -z "$SMF_EXIT_OK" && exit 0
+ test -n "$SMF_EXIT_OK" && exit $SMF_EXIT_OK
+ else
+ echo "CONFIG ERROR! Start aborted. Check your Nagios configuration."
+ test -z "$SMF_EXIT_ERR_CONFIG" && exit 1
+ test -n "$SMF_EXIT_ERR_CONFIG" && exit $SMF_EXIT_ERR_CONFIG
+ fi
;;
stop)
- echo "Stopping network monitor: nagios"
+ printf "Stopping nagios: "
+
+ pid_nagios
killproc_nagios nagios
- rm -f $NagiosLog $NagiosTmp $NagiosRun $NagiosLckDir/$NagiosLckFile $NagiosCmd
+
+ # now we have to wait for nagios to exit and remove its
+ # own NagiosRunFile, otherwise a following "start" could
+ # happen, and then the exiting nagios will remove the
+ # new NagiosRunFile, allowing multiple nagios daemons
+ # to (sooner or later) run - John Sellens
+ #printf 'Waiting for nagios to exit .'
+ for i in 1 2 3 4 5 6 7 8 9 10 ; do
+ if status_nagios > /dev/null; then
+ printf '.'
+ sleep 1
+ else
+ break
+ fi
+ done
+ if status_nagios > /dev/null; then
+ echo ''
+ echo 'Warning - nagios did not exit in a timely manner'
+ else
+ echo 'done.'
+ fi
+
+ rm -f $NagiosStatusFile $NagiosRunFile $NagiosLockDir$NagiosLockFile $NagiosCommandFile
;;
status)
- status_nagios nagios
+ pid_nagios
+ printstatus_nagios nagios
;;
+ checkconfig)
+ printf "Running configuration check..."
+ $NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
+ if [ $? -eq 0 ]; then
+ echo " OK."
+ else
+ echo " CONFIG ERROR! Check your Nagios configuration."
+ test -z "$SMF_EXIT_ERR_CONFIG" && exit 1
+ test -n "$SMF_EXIT_ERR_CONFIG" && exit $SMF_EXIT_ERR_CONFIG
+ fi
+ ;;
+
restart)
printf "Running configuration check..."
- $NagiosBin -v $NagiosCfg > /dev/null 2>&1;
+ $NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
if [ $? -eq 0 ]; then
- echo "done"
- $0 stop
- $0 start
+ echo "done."
+ "$0" stop
+ "$0" start
else
- $NagiosBin -v $NagiosCfg
- echo "failed - aborting restart."
- exit 1
+ echo " CONFIG ERROR! Restart aborted. Check your Nagios configuration."
+ test -z "$SMF_EXIT_ERR_CONFIG" && exit 1
+ test -n "$SMF_EXIT_ERR_CONFIG" && exit $SMF_EXIT_ERR_CONFIG
fi
;;
reload|force-reload)
printf "Running configuration check..."
- $NagiosBin -v $NagiosCfg > /dev/null 2>&1;
+ $NagiosBin -v $NagiosCfgFile > /dev/null 2>&1;
if [ $? -eq 0 ]; then
- echo "done"
- if test ! -f $NagiosRun; then
- $0 start
+ echo "done."
+ if test ! -f $NagiosRunFile; then
+ "$0" start
else
- NagiosPID=`head -n 1 $NagiosRun`
+ pid_nagios
if status_nagios > /dev/null; then
printf "Reloading nagios configuration..."
killproc_nagios nagios -HUP
echo "done"
else
- $0 stop
- $0 start
+ "$0" stop
+ "$0" start
fi
fi
else
- $NagiosBin -v $NagiosCfg
- echo "failed - aborting reload."
- exit 1
+ echo " CONFIG ERROR! Reload aborted. Check your Nagios configuration."
+ test -z "$SMF_EXIT_ERR_CONFIG" && exit 1
+ test -n "$SMF_EXIT_ERR_CONFIG" && exit $SMF_EXIT_ERR_CONFIG
fi
;;
*)
- echo "Usage: nagios {start|stop|restart|reload|force-reload|status}"
- exit 1
+ echo "Usage: nagios {start|stop|restart|reload|force-reload|status|checkconfig}"
+ test -z "$SMF_EXIT_ERR_FATAL" && exit 1
+ test -n "$SMF_EXIT_ERR_FATAL" && exit $SMF_EXIT_ERR_FATAL
;;
esac
Deleted: csw/mgar/pkg/nagios/trunk/files/nagios
===================================================================
--- csw/mgar/pkg/nagios/trunk/files/nagios 2009-09-29 15:28:52 UTC (rev 6610)
+++ csw/mgar/pkg/nagios/trunk/files/nagios 2009-09-29 15:45:36 UTC (rev 6611)
@@ -1,171 +0,0 @@
-#!/bin/sh
-#
-# chkconfig: 345 99 01
-# description: Nagios network monitor
-#
-# File : nagios
-#
-# Author : Jorge Sanchez Aymar (jsanchez at lanchile.cl)
-#
-# Changelog :
-#
-# 1999-07-09 Karl DeBisschop <kdebisschop at infoplease.com>
-# - setup for autoconf
-# - add reload function
-# 1999-08-06 Ethan Galstad <nagios at nagios.org>
-# - Added configuration info for use with RedHat's chkconfig tool
-# per Fran Boon's suggestion
-# 1999-08-13 Jim Popovitch <jimpop at rocketship.com>
-# - added variable for nagios/var directory
-# - cd into nagios/var directory before creating tmp files on startup
-# 1999-08-16 Ethan Galstad <nagios at nagios.org>
-# - Added test for rc.d directory as suggested by Karl DeBisschop
-# 2000-07-23 Karl DeBisschop <kdebisschop at users.sourceforge.net>
-# - Clean out redhat macros and other dependencies
-#
-# Description: Starts and stops the Nagios monitor
-# used to provide network services status.
-#
-# Modified for CSW by Alex Moore 2006-02-27
-
-
-status_nagios ()
-{
-
- if test ! -f $NagiosRun; then
- echo "No lock file found in $NagiosRun"
- return 1
- fi
-
- NagiosPID=`head -n 1 $NagiosRun`
- if test -x $NagiosCGI/daemonchk.cgi; then
- if $NagiosCGI/daemonchk.cgi -l $NagiosRun; then
- return 0
- else
- return 1
- fi
- else
- if ps -p $NagiosPID; then
- return 0
- else
- return 1
- fi
- fi
-
- return 1
-}
-
-
-killproc_nagios ()
-{
-
- if [ ! -f $NagiosRun ]; then
- echo "No lock file found in $NagiosRun"
- return 1
- fi
-
- NagiosPID=`head -n 1 $NagiosRun`
- kill $2 $NagiosPID
-}
-
-
-# Source function library
-# Solaris doesn't have an rc.d directory, so do a test first
-if [ -f /etc/rc.d/init.d/functions ]; then
- . /etc/rc.d/init.d/functions
-elif [ -f /etc/init.d/functions ]; then
- . /etc/init.d/functions
-fi
-
-prefix=/opt/csw/nagios
-exec_prefix=${prefix}
-NagiosBin=${exec_prefix}/bin/nagios
-NagiosCfg=${prefix}/etc/nagios.cfg
-NagiosLog=${prefix}/var/status.log
-NagiosTmp=${prefix}/var/nagios.tmp
-NagiosSav=${prefix}/var/status.sav
-NagiosCmd=${prefix}/var/rw/nagios.cmd
-NagiosVar=${prefix}/var
-NagiosRun=${prefix}/var/nagios.lock
-NagiosLckDir=/var/lock/subsys
-NagiosLckFile=nagios
-NagiosCGI=${exec_prefix}/sbin
-Nagios=nagios
-
-
-# Check that nagios exists.
-test -f $NagiosBin || exit 0
-
-# Check that nagios.cfg exists.
-test -f $NagiosCfg || exit 0
-
-# See how we were called.
-case "$1" in
-
- start)
- echo "Starting network monitor: nagios"
- su - $Nagios -c "touch $NagiosVar/nagios.log $NagiosSav"
- rm -f $NagiosCmd
- $NagiosBin -d $NagiosCfg
- if [ -d $NagiosLckDir ]; then touch $NagiosLckDir/$NagiosLckFile; fi
- sleep 1
- status_nagios nagios
- ;;
-
- stop)
- echo "Stopping network monitor: nagios"
- killproc_nagios nagios
- rm -f $NagiosLog $NagiosTmp $NagiosRun $NagiosLckDir/$NagiosLckFile $NagiosCmd
- ;;
-
- status)
- status_nagios nagios
- ;;
-
- restart)
- printf "Running configuration check..."
- $NagiosBin -v $NagiosCfg > /dev/null 2>&1;
- if [ $? -eq 0 ]; then
- echo "done"
- $0 stop
- $0 start
- else
- $NagiosBin -v $NagiosCfg
- echo "failed - aborting restart."
- exit 1
- fi
- ;;
-
- reload|force-reload)
- printf "Running configuration check..."
- $NagiosBin -v $NagiosCfg > /dev/null 2>&1;
- if [ $? -eq 0 ]; then
- echo "done"
- if test ! -f $NagiosRun; then
- $0 start
- else
- NagiosPID=`head -n 1 $NagiosRun`
- if status_nagios > /dev/null; then
- printf "Reloading nagios configuration..."
- killproc_nagios nagios -HUP
- echo "done"
- else
- $0 stop
- $0 start
- fi
- fi
- else
- $NagiosBin -v $NagiosCfg
- echo "failed - aborting reload."
- exit 1
- fi
- ;;
-
- *)
- echo "Usage: nagios {start|stop|restart|reload|force-reload|status}"
- exit 1
- ;;
-
-esac
-
-# End of this script
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list