[25523] in Source-Commits

home help back first fref pref prev next nref lref last post

/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"
 }


home help back first fref pref prev next nref lref last post