packages: nagios/nagios.init - improved checkconfig

glen glen at pld-linux.org
Sat Jul 25 21:18:09 CEST 2009


Author: glen                         Date: Sat Jul 25 19:18:09 2009 GMT
Module: packages                      Tag: HEAD
---- Log message:
- improved checkconfig

---- Files affected:
packages/nagios:
   nagios.init (1.19 -> 1.20) 

---- Diffs:

================================================================
Index: packages/nagios/nagios.init
diff -u packages/nagios/nagios.init:1.19 packages/nagios/nagios.init:1.20
--- packages/nagios/nagios.init:1.19	Sat Jul 25 21:09:25 2009
+++ packages/nagios/nagios.init	Sat Jul 25 21:18:04 2009
@@ -25,16 +25,38 @@
 	exit 0
 fi
 
-checkconfig() {
-	/usr/sbin/nagios -v /etc/nagios/nagios.cfg > /dev/null
-	rc=$?
+# configtest itself
+configtest() {
+	local rc out
+	out=`/usr/sbin/nagios -v /etc/nagios/nagios.cfg 2>&1`; rc=$?
 	if [ $rc -gt 0 ]; then
-		fail
-		nls 'The configuration is broken. See details with %s "checkconfig"' /etc/rc.d/init.d/nagios
+		echo >&2 "$out"
 	fi
 	return $rc
 }
 
+# wrapper for configtest:
+checkconfig() {
+	local details=${1:-0}
+
+	if [ $details = 1 ]; then
+		# run config test and display report (status action)
+		show "Checking %s configuration" "Nagios"; busy; echo
+		configtest
+		RETVAL=$?
+	else
+		# run config test and abort with nice message if failed
+		# (for actions checking status before action).
+		configtest >/dev/null 2>&1
+		RETVAL=$?
+		if [ $RETVAL != 0 ]; then
+			show "Checking %s configuration" "Nagios"; fail
+			nls 'Configuration test failed. See details with %s "checkconfig"' $0
+			exit $RETVAL
+		fi
+	fi
+}
+
 start() {
 	# Check if the service is already running?
 	if [ -f /var/lock/subsys/nagios ]; then
@@ -42,8 +64,8 @@
 		return
 	fi
 
+	checkconfig
 	msg_starting "Nagios"
-	checkconfig || exit
 
 	# remove stale cmd pipe (or nagios won't start if it exists)
 	rm -f /var/lib/nagios/rw/nagios.cmd
@@ -73,6 +95,7 @@
 		return
 	fi
 
+	checkconfig
 	stop
 	start
 }
@@ -84,8 +107,8 @@
 		return
 	fi
 
+	checkconfig
 	msg_reloading "Nagios"
-	checkconfig || exit
 
 	killproc nagios -HUP
 	RETVAL=$?
@@ -101,8 +124,7 @@
 	stop
 	;;
   restart)
-	msg_reloading "Nagios"
-	checkconfig || exit && started
+	checkconfig
 	stop
 	start
 	;;
@@ -113,8 +135,7 @@
   	reload
 	;;
   checkconfig|check|configtest)
-	/usr/sbin/nagios -v /etc/nagios/nagios.cfg
-	exit $?
+	checkconfig 1
 	;;
   status)
 	status nagios
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/nagios/nagios.init?r1=1.19&r2=1.20&f=u



More information about the pld-cvs-commit mailing list