[25523] in Source-Commits
/svn/athena r25053 - trunk/third/moira/debian
daemon@ATHENA.MIT.EDU (Jonathan D Reed)
Wed Mar 16 15:12:28 2011
Date: Wed, 16 Mar 2011 15:12:22 -0400
From: Jonathan D Reed <jdreed@MIT.EDU>
Message-Id: <201103161912.p2GJCMBb026968@drugstore.mit.edu>
To: source-commits@mit.edu
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Author: jdreed
Date: 2011-03-16 15:12:22 -0400 (Wed, 16 Mar 2011)
New Revision: 25053
Modified:
trunk/third/moira/debian/debathena-moira-update-server.init
Log:
Work around start-stop-daemon stupidity
Modified: trunk/third/moira/debian/debathena-moira-update-server.init
===================================================================
--- trunk/third/moira/debian/debathena-moira-update-server.init 2011-03-16 17:09:13 UTC (rev 25052)
+++ trunk/third/moira/debian/debathena-moira-update-server.init 2011-03-16 19:12:22 UTC (rev 25053)
@@ -40,7 +40,6 @@
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
-#
# Function that starts the daemon/service
#
do_start()
@@ -49,12 +48,31 @@
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
- start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \
+
+ PID="$(pgrep -f $DAEMON)"
+ if [ -n "$PID" ]; then
+ if [ -f "$PIDFILE" ] && \
+ [ "$(cat $PIDFILE)" != "$PID" ]; then
+ rm -f $PIDFILE
+ echo "$PID" > $PIDFILE
+ fi
+ fi
+ start-stop-daemon --start --quiet --pidfile $PIDFILE \
+ --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE \
--exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
+ sleep 1
+ PID="$(pgrep -f $DAEMON)"
+ if [ -n "$PID" ]; then
+ if [ -f "$PIDFILE" ] && \
+ [ "$(cat $PIDFILE)" != "$PID" ]; then
+ rm -f $PIDFILE
+ echo "$PID" > $PIDFILE
+ fi
+ fi
# Add code here, if necessary, that waits for the process to be ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
@@ -79,7 +97,7 @@
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
- start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
+ start-stop-daemon --stop --quiet --oknodo --retry=0/10/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
return "$RETVAL"
}