[Pkg-sks-commit] r59 - sks/trunk/sks/debian

chrism at alioth.debian.org chrism at alioth.debian.org
Thu Jun 19 14:45:15 UTC 2008


Author: chrism
Date: 2008-06-19 14:45:13 +0000 (Thu, 19 Jun 2008)
New Revision: 59

Modified:
   sks/trunk/sks/debian/init
Log:
[project @ 60]
Wait for daemons to die in init script

Original author: weasel
Date: 2003-12-06 10:09:30.224513+00:00

Modified: sks/trunk/sks/debian/init
===================================================================
--- sks/trunk/sks/debian/init	2008-06-19 14:44:45 UTC (rev 58)
+++ sks/trunk/sks/debian/init	2008-06-19 14:45:13 UTC (rev 59)
@@ -9,7 +9,7 @@
 
 DAEMON=/usr/bin/sks
 SKSDBPID=/var/run/sks/sksdb.pid
-SKSREPID=/var/run/sks/sksrecon.pid
+SKSRECONPID=/var/run/sks/sksrecon.pid
 
 # See if the daemon is there
 
@@ -20,6 +20,36 @@
     exit 1
 fi
 
+
+wait_for_deaddaemon () {
+	PID=$1
+	sleep 1
+	if test -n "$PID"
+	then
+		if kill -0 $PID 2>/dev/null
+		then
+			echo -n "."
+			cnt=0
+			while kill -0 $PID 2>/dev/null
+			do
+				cnt=`expr $cnt + 1`
+				if [ $cnt -gt 30 ]
+				then
+					echo " FAILED."
+					return 1
+				fi
+				sleep 2
+				echo -n "."
+			done
+			rm -f $PIDFILE
+		else
+			rm -f $PIDFILE
+		fi
+	fi
+	return 0
+}
+
+
 case "$1" in
     start)
 	echo -n "Starting sks daemons:"
@@ -29,7 +59,7 @@
 	    exit 0
 	fi
 
-	echo -n " sksdb"
+	echo -n " sksdb.."
 
 	start-stop-daemon --start --quiet --oknodo \
 			  --chuid debian-sks:nogroup \
@@ -38,13 +68,13 @@
 			  --pidfile $SKSDBPID \
 			  --exec $DAEMON -- db
 
-	echo -n " sksrecon"
+	echo -n " sksrecon.."
 
 	start-stop-daemon --start --quiet --oknodo \
 			  --chuid debian-sks:nogroup \
 			  --background \
 			  --make-pidfile \
-			  --pidfile $SKSREPID \
+			  --pidfile $SKSRECONPID \
 			  --exec $DAEMON -- recon
 
 	echo " done."
@@ -53,16 +83,18 @@
     stop)
 	echo -n "Stopping sks daemons:"
 
-	echo -n " sksrecon"
+	pid=`cat $SKSRECONPID 2>/dev/null` || true
+	echo -n " sksrecon.."
+	start-stop-daemon --stop --quiet --oknodo --pidfile $SKSRECONPID
+	wait_for_deaddaemon $pid || exit 1
+	rm -f $SKSRECONPID
 
-	start-stop-daemon --stop --quiet --oknodo --pidfile $SKSREPID
-
-	echo -n " sksdb"
-
+	pid=`cat $SKSDBPID 2>/dev/null` || true
+	echo -n " sksdb.."
 	start-stop-daemon --stop --quiet --oknodo --pidfile $SKSDBPID
+	wait_for_deaddaemon $pid || exit 1
+	rm -f $SKSDBPID
 
-	rm -f $SKSREPID $SKSDBPID
-
 	echo " done."
 
     ;;




More information about the Pkg-sks-commit mailing list