packages: cherokee/cherokee.init - init script fixed (previous version didn...

jajcus jajcus at pld-linux.org
Wed May 12 08:34:34 CEST 2010


Author: jajcus                       Date: Wed May 12 06:34:34 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- init script fixed (previous version didn't work most the time)

---- Files affected:
packages/cherokee:
   cherokee.init (1.11 -> 1.12) 

---- Diffs:

================================================================
Index: packages/cherokee/cherokee.init
diff -u packages/cherokee/cherokee.init:1.11 packages/cherokee/cherokee.init:1.12
--- packages/cherokee/cherokee.init:1.11	Tue Oct 21 08:47:55 2008
+++ packages/cherokee/cherokee.init	Wed May 12 08:34:29 2010
@@ -27,22 +27,26 @@
 	exit 0
 fi
 
+configtest() {
+	
+	test_result="$(/usr/sbin/cherokee -t 2>&1)"
+	# exit status is not usable here, parse the output
+	if [ "${test_result##Test on*: }" = "OK" ] ; then
+		return 0
+	else
+		echo $test_result >&2
+		return 1
+	fi
+}
+
 start() {
 	# Check if the service is already running?
 	if [ ! -f /var/lock/subsys/cherokee ]; then
 		msg_starting "Cherokee Web Server"
-		(
-		# it offers no stdout/stderr logging. workaround
-		exec 2>>/var/log/cherokee/cherokee.log
-		exec 1>&2
-		start-stop-daemon --start --pidfile /var/run/cherokee.pid --oknodo -b --exec /usr/sbin/cherokee
-		)
+		daemon cherokee -d
 		RETVAL=$?
 		if [ $RETVAL -eq 0 ]; then
 			touch /var/lock/subsys/cherokee
-			ok
-		else
-			fail
 		fi
 	else
 		msg_already_running "Cherokee Web Server"
@@ -53,14 +57,9 @@
 	if [ -f /var/lock/subsys/cherokee ]; then
 		# Stop daemons.
 		msg_stopping "Cherokee Web Server"
-		start-stop-daemon --stop --pidfile /var/run/cherokee.pid --oknodo --exec /usr/sbin/cherokee
+		killproc cherokee
 		RETVAL=$?
-		if [ $RETVAL -eq 0 ]; then
-			rm -f /var/lock/subsys/cherokee >/dev/null 2>&1
-			ok
-		else
-			fail
-		fi
+		rm -f /var/lock/subsys/cherokee >/dev/null 2>&1
 	else
 		msg_not_running "Cherokee Web Server"
 	fi
@@ -68,14 +67,43 @@
 
 condrestart() {
 	if [ -f /var/lock/subsys/cherokee ]; then
-		stop
-		start
+		if configtest ; then
+			stop
+			start
+		else
+			RETVAL=1
+		fi
 	else
 		msg_not_running "Cherokee Web Server"
 		RETVAL=$1
 	fi
 }
 
+reload() {
+	if [ -f /var/lock/subsys/cherokee ]; then
+		if configtest ; then
+			msg_reloading "Cherokee Web Server"
+			pid="$(pidofproc cherokee)"
+			if [ -n "$pid" ] && kill -HUP $(pidofproc cherokee) ; then
+				ok
+			elif [ "$1" = "force-reload" ] ; then
+				fail
+				stop
+				start
+				RETVAL=$?
+			else
+				fail
+				RETVAL=1
+			fi
+		else
+			RETVAL=1
+		fi
+	else
+		msg_not_running "Cherokee Web Server"
+		RETVAL=7
+	fi
+}
+
 RETVAL=0
 # See how we were called.
 case "$1" in
@@ -86,21 +114,27 @@
   	stop
 	;;
   restart)
-	stop
-	start
+	if configtest ; then
+		stop
+		start
+	fi
+	;;
+  reload|force-reload)
+        reload $1
 	;;
   try-restart)
 	condrestart 0
 	;;
-  force-reload)
-	condrestart 7
-	;;
   status)
 	status cherokee
 	RETVAL=$?
 	;;
+  configtest)
+  	configtest
+	RETVAL=$?
+	;;
   *)
-	msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
+	msg_usage "$0 {start|stop|restart|try-restart|force-reload|status|configtest}"
 	exit 3
 esac
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/cherokee/cherokee.init?r1=1.11&r2=1.12&f=u



More information about the pld-cvs-commit mailing list