--- src/etc/script/sympa.in.orig Wed Jun 10 18:24:26 2015 +++ src/etc/script/sympa.in Thu Nov 3 17:10:49 2016 @@ -90,7 +51,7 @@ sympa_status() { if [ -f ${sympapiddir}/$1.pid ] ; then pid=`head -1 ${sympapiddir}/$1.pid | tr -s ' ' '|'` if [ "$pid" != "" ] ; then - running=`ps -A | egrep "$pid"` + running=`pgrep -f $1.pl` if [ "$running" != "" ]; then echo "$1 (pid(s) $pid) is active..." return 0 @@ -188,7 +137,7 @@ sympa_stop() { if [ "$pids" != "" ]; then for pid in $pids; do killcount=0 - running=`ps -A | grep "$pid ..* $comm"` + running=`pgrep -f $1.pl` while [ "$running" != "" ]; do if [ $killcount -gt 10 ]; then if [ ${use_functions} ]; then @@ -200,13 +149,13 @@ sympa_stop() { fi kill -TERM $pid >/dev/null 2>&1 - running=`ps -A | grep "$pid ..* $comm"` + running=`pgrep -f $1.pl` if [ "$running" = "" ]; then runcount=`expr $runcount + 1` break fi sleep 2 - running=`ps -A | grep "$pid ..* $comm"` + running=`pgrep -f $1.pl` if [ "$running" = "" ]; then runcount=`expr $runcount + 1` break @@ -232,14 +176,6 @@ sympa_stop() { } -# Check that networking is up. -if [ ${OSTYPE} != "Slack" -a ${OSTYPE} != "FreeBSD" -a ${OSTYPE} != "SunOS" -a ${OSTYPE} != "darwin7.0" -a ${OSTYPE} != "Debian" -a ${OSTYPE} != "Suse" ]; then - if [ ${NETWORKING} = "no" ] - then - exit 0 - fi -fi - # Check config files [ -d $sympadir ] || exit 0 [ -f $sympaconf ] || exit 0 @@ -297,11 +233,13 @@ case "$1" in else echo "Status file for subsystem NOT found." fi - sympa_status sympa_msg - sympa_status bulk - sympa_status archived - sympa_status bounced - sympa_status task_manager + failed=0 + sympa_status sympa_msg || failed=1 + sympa_status bulk || failed=1 + sympa_status archived || failed=1 + sympa_status bounced || failed=1 + sympa_status task_manager || failed=1 + if [ $failed == 1 ] ; then exit 1 ; fi ;; restart) echo "Restarting Sympa subsystem: "