From 1002e60f6f84b70b4ad3c14147011205e6ed55dc Mon Sep 17 00:00:00 2001 From: souliane Date: Sun, 23 Mar 2014 22:44:49 +0100 Subject: [PATCH] misc: sat stop would not kill all sat instances anymore --- src/sat.sh | 53 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 18 deletions(-) diff --git a/src/sat.sh b/src/sat.sh index ded0275c..ac73aae6 100755 --- a/src/sat.sh +++ b/src/sat.sh @@ -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 @@ config = SafeConfigParser(defaults=Const.DEFAULT_CONFIG) 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 @@ PYTHONEND 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 @@ ADDITIONAL_OPTIONS="--pidfile $PID_FILE --logfile $LOG_FILE $AUTO_OPTIONS $DEBUG 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