[Server-devel] [PATCH]More accurate idmgr shutdown status (#7653) and condrestart option.

Douglas Bagnall douglas at paradise.net.nz
Mon Aug 11 19:25:08 EDT 2008


    
    The status returned by "/etc/init.d/idmgr stop" is less often the inverse
    of its actual success.
    
    "/etc/init.d/idmgr start" will not start if the daemon is already running.
    
    "/etc/init.d/idmgr condrestart" works.

diff --git a/conf.schoolserver/idmgr b/conf.schoolserver/idmgr
index d7a6d9f..23f1c7f 100755
--- a/conf.schoolserver/idmgr
+++ b/conf.schoolserver/idmgr
@@ -33,11 +33,12 @@ prog=idmgr
 SERVER=/home/idmgr/idmgr/server.py
 RETVAL=0
 
+
 start() {
 	# Start daemons.
 	echo -n "Starting $prog: "
 	export PYTHONPATH=/home/idmgr/:/home/idmgr/idmgr/simplejson-1.7.1-py2.5.egg
-	daemon $SERVER $OPTS
+        daemon --pidfile=${PID_FILE} $SERVER $OPTS
 	RETVAL=$?
 	return $RETVAL
 }
@@ -45,8 +46,10 @@ start() {
 stop() {
 	# Stop daemons.
 	echo -n "Shutting down $prog: "
-	kill `cat $PID_FILE`
+	killproc -p ${PID_FILE} -d 10 $prog
 	RETVAL=$?
+	echo
+	[ $RETVAL = 0 ] && rm -f ${PID_FILE}
 	return $RETVAL
 }
 
@@ -63,12 +66,19 @@ case "$1" in
 	start
 	RETVAL=$?
 	;;
+  condrestart)
+	if [ -f $PID_FILE ] ; then
+		stop
+		start
+	        RETVAL=$?
+	fi
+	;;
   status)
         status idmgr $PID_FILE
 	RETVAL=0
 	;;
   *)
-	echo $"Usage: $0 {start|stop|restart|status}"
+	echo $"Usage: $0 {start|stop|restart|condrestart|status}"
 	exit 1
 esac
 



More information about the Server-devel mailing list