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
 

_______________________________________________
Server-devel mailing list
Server-devel@lists.laptop.org
http://lists.laptop.org/listinfo/server-devel

Reply via email to