diff options
author | Evan Prodromou <evan@controlyourself.ca> | 2009-03-12 11:56:23 -0400 |
---|---|---|
committer | Evan Prodromou <evan@controlyourself.ca> | 2009-03-12 11:56:23 -0400 |
commit | b3a0eea3b66e95becb6c4595ed71c7fe71ed6437 (patch) | |
tree | 76666150701f03205bfff77e7d034dfa724f8764 /scripts/stopdaemons.sh | |
parent | 399669b1fb955d2d8c18098a7b551184d534a94c (diff) | |
parent | e185c0395a6cd250ccd7c8e385c54830be73f937 (diff) |
Merge branch '0.7.x' into 0.8.x
Conflicts:
classes/Notice.php
lib/action.php
lib/router.php
lib/twitter.php
Diffstat (limited to 'scripts/stopdaemons.sh')
-rwxr-xr-x | scripts/stopdaemons.sh | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/scripts/stopdaemons.sh b/scripts/stopdaemons.sh index fd4406d41..2bb8f9ecb 100755 --- a/scripts/stopdaemons.sh +++ b/scripts/stopdaemons.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Laconica - a distributed open-source microblogging tool @@ -23,19 +23,30 @@ SDIR=`dirname $0` DIR=`php $SDIR/getpiddir.php` -for f in jabberhandler ombhandler publichandler smshandler \ +for f in jabberhandler ombhandler publichandler smshandler pinghandler \ xmppconfirmhandler xmppdaemon twitterhandler facebookhandler ; do FILES="$DIR/$f.*.pid" for ff in "$FILES" ; do - echo -n "Stopping $f..." - PID=`cat $ff` - kill -3 $PID - if kill -9 $PID ; then - echo "DONE." - else - echo "FAILED." + PID=`cat $ff 2>/dev/null` + if [ -n "$PID" ] ; then + echo -n "Stopping $f ($PID)..." + if kill -3 $PID 2>/dev/null ; then + count=0 + while kill -0 $PID 2>/dev/null ; do + sleep 1 + count=$(($count + 1)) + if [ $count -gt 5 ]; then break; fi + done + if kill -9 $PID 2>/dev/null ; then + echo "FORCIBLY TERMINATED" + else + echo "STOPPED CLEANLY" + fi + else + echo "NOT FOUND" + fi fi rm -f $ff done |