]> git.donarmstrong.com Git - deb_pkgs/spamass-milter.git/blobdiff - debian/spamass-milter.init
fix init script status failing when the pidfile does not exist
[deb_pkgs/spamass-milter.git] / debian / spamass-milter.init
index afa63ca6774c764ecaf2b7bb391461a4f55c92ba..7d114aa4272225725a51c86f6c6b64cabea39d0e 100644 (file)
@@ -90,7 +90,7 @@ fi;
 set -e
 
 start() {
-    if status; then
+    if [ -e $PIDFILE ] && kill -0 $(cat $PIDFILE); then
         echo "$NAME is already running";
         exit 1;
     fi;
@@ -125,33 +125,37 @@ start() {
     fi;
     start-stop-daemon --start -p $PIDFILE $CHUID --exec $DAEMON -- -P $PIDFILE -f -p $SOCKET $OPTIONS
     sleep 1
-    if [ -n "$SOCKETMODE" ]; then
-       chmod $SOCKETMODE $SOCKET;
-    fi;
-    if [ -n "$SOCKETOWNER" ]; then
-       chown $SOCKETOWNER $SOCKET;
+    if [ $(dirname $SOCKET) != "." ]; then
+       if [ -n "$SOCKETMODE" ]; then
+              chmod $SOCKETMODE $SOCKET;
+       fi;
+       if [ -n "$SOCKETOWNER" ]; then
+              chown $SOCKETOWNER $SOCKET;
+       fi;
     fi;
 }
 
 stop(){
     start-stop-daemon --oknodo --stop -p $PIDFILE --signal 3 --exec $DAEMON
     /bin/sleep 5
-    /bin/rm -f $SOCKET
+    if [ $(dirname $SOCKET) != "." ]; then 
+           /bin/rm -f $SOCKET
+    fi;
     /bin/rm -f $PIDFILE
 }
 
 status(){
     if [ -e $PIDFILE ]; then 
-       if kill -0 $(cat $PIDFILE); then
-           echo "${NAME} running";
-           exit 0;
-       else
-           echo "${NAME} dead but $PIDFILE exists";
-           exit 1;
+           if kill -0 $(cat $PIDFILE); then
+               echo "${NAME} running";
+               exit 0;
+           else
+               echo "${NAME} dead but $PIDFILE exists";
+               exit 1;
+           fi;
        fi;
-       echo "${NAME} not running";
+    echo "${NAME} not running";
        exit 3;
-    fi;
 }
 
 case "$1" in