changeset 931:3b30e9f83d88

misc: sat stop would not kill all sat instances anymore
author souliane <souliane@mailoo.org>
date Sun, 23 Mar 2014 22:44:49 +0100
parents cbf4122baae7
children 1e0550271546
files src/sat.sh
diffstat 1 files changed, 35 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/src/sat.sh	Sun Mar 23 22:43:43 2014 +0100
+++ b/src/sat.sh	Sun Mar 23 22:44:49 2014 +0100
@@ -1,21 +1,25 @@
 #!/bin/sh
 
-#if there is one argument which is "stop", then we kill SàT
 DEBUG=""
-if [ $# -eq 1 ];then
-	if [ $1 = "stop" ];then
-		echo "Terminating Salut à Toi"
-		pkill -f "twistd.*/sat.tac"
-		exit 0
-	fi
-	if [ $1 = "debug" ];then
-		echo "Launching SàT in debug mode"
-		DEBUG="--debug"
-	fi
-fi
+NAME="sat"
+FULL_NAME="Salut à Toi"
+PYTHON="python2"
 
-NAME='sat'
-PYTHON='python'
+kill_process() {
+    # $1 is the file containing the PID to kill, $2 is the process name
+    if [ -f $1 ]; then
+        PID=`cat $1`
+        if ps -p $PID > /dev/null; then
+            echo "Terminating $2... "
+            kill -INT $PID
+        else
+            echo "No running process of ID $PID... removing PID file"
+            rm -f $1
+        fi
+    else
+        echo "$2 is probably not running (PID file doesn't exist)"
+    fi
+}
 
 #We use python to parse config files
 eval `"$PYTHON" << PYTHONEND
@@ -28,9 +32,9 @@
 try:
     config.read(Const.CONFIG_FILES)
 except:
-	print ("echo \"/!\\ Can't read main config ! Please check the syntax\";")
-	print ("exit 1")
-	sys.exit()
+    print ("echo \"/!\\ Can't read main config ! Please check the syntax\";")
+    print ("exit 1")
+    sys.exit()
 
 env=[]
 env.append("PID_DIR='%s'" % join(expanduser(config.get('DEFAULT', 'pid_dir')),''))
@@ -42,6 +46,19 @@
 
 PID_FILE="$PID_DIR$NAME.pid"
 LOG_FILE="$LOG_DIR$NAME.log"
+
+# if there is one argument which is "stop", then we kill SàT
+if [ $# -eq 1 ];then
+    if [ $1 = "stop" ];then
+        kill_process $PID_FILE "$FULL_NAME"
+        exit 0
+    fi
+    if [ $1 = "debug" ];then
+        echo "Launching $FULL_NAME in debug mode"
+        DEBUG="--debug"
+    fi
+fi
+
 DAEMON="n"
 MAIN_OPTIONS="-${DAEMON}oy"
 TAP_PATH="./"
@@ -53,7 +70,7 @@
 
 log_dir=`dirname "$LOG_FILE"`
 if [ ! -d $log_dir ] ; then
-	mkdir $log_dir
+    mkdir $log_dir
 fi
 
 twistd $MAIN_OPTIONS $TAP_PATH$TAP_FILE $ADDITIONAL_OPTIONS