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