[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