$OpenBSD: patch-src_etc_script_sympa_in,v 1.3 2011/08/16 10:06:58 landry Exp $ --- src/etc/script/sympa.in.orig Wed Nov 17 08:25:42 2010 +++ src/etc/script/sympa.in Sun Aug 7 11:43:46 2011 @@ -14,43 +14,11 @@ # chkconfig: 345 95 05 # description: sympa is a powerfull mailing lists management system. -if [ -f --initdir--/functions ]; then - # Source function library. - . --initdir--/functions - - ## Set a flag - use_functions=1 -fi - -if [ -f /etc/sysconfig/network ]; then - # Get config. - . /etc/sysconfig/network -fi - # OSTYPE is not defined on Solaris if [ ! "${OSTYPE}" ]; then OSTYPE=`uname -s` fi -# OSTYPE *is* defined on Solaris 10! (bug #3149) -case "$OSTYPE" in - *solaris*) - OSTYPE=SunOS - ;; -esac - -if [ -f /etc/SuSE-release ] ; then - OSTYPE='Suse' -fi - -if [ -f /etc/debian_version ] ; then - OSTYPE='Debian' -fi - -if [ -f /etc/slackware-version ] ; then - OSTYPE='Slack' -fi - # Sympa parameters # Sympa binaries directory sympadir="--sbindir--" @@ -59,12 +27,7 @@ sympadir="--sbindir--" sympaconf="--CONFIG--" wwsympaconf="--WWSCONFIG--" -##'echo -n' not supported with SH on Solaris -if [ ${OSTYPE} = "SunOS" ]; then - echo_opt="" -else echo_opt="-n" -fi # End of parameters @@ -76,16 +39,11 @@ sympa_status() { return 1 fi - if [ ${use_functions} ]; then - - status $1.pl - - else # First try "/u1/home/sympa/*.pid" files if [ -f --piddir--/$1.pid ] ; then pid=`head -1 --piddir--/$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 @@ -97,7 +55,6 @@ sympa_status() { fi echo "$1 is stopped." return 3 - fi } # Start a module @@ -107,18 +64,7 @@ sympa_module_start() { return 1 fi -# if [ $1 = "sympa" -a $lang != "" ]; then -# startparam="-l $lang" -# else -# startparam="" -# fi - - if [ ${use_functions} ]; then - $sympadir/$1.pl $startparam && success || failure - else - $sympadir/$1.pl $startparam && echo "success" || echo "failure" - fi - echo + $sympadir/$1.pl && echo "success" || echo "failure" } # Test state of module before startup @@ -159,25 +105,21 @@ sympa_stop() { if [ "$pids" != "" ]; then for pid in $pids; do killcount=0 - running=`ps -A | grep "$pid ..* $1\\.pl"` + running=`pgrep -f $1.pl` while [ "$running" != "" ]; do if [ $killcount -gt 10 ]; then - if [ ${use_functions} ]; then - failure - else echo 'failure' - fi return 3 fi kill -TERM $pid >/dev/null 2>&1 - running=`ps -A | grep "$pid ..* $1\\.pl"` + running=`pgrep -f $1.pl` if [ "$running" = "" ]; then runcount=`expr $runcount + 1` break fi sleep 2 - running=`ps -A | grep "$pid ..* $1\\.pl"` + running=`pgrep -f $1.pl` if [ "$running" = "" ]; then runcount=`expr $runcount + 1` break @@ -187,15 +129,10 @@ sympa_stop() { done fi if [ $runcount -gt 0 ]; then - if [ ${use_functions} ]; then - success - else echo 'success' - fi else echo 'died' fi - echo else echo "Module $1.pl not running" fi @@ -203,14 +140,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 @@ -227,7 +156,6 @@ case "$1" in sympa_start bounced sympa_start task_manager touch --lockdir--/sympa - echo else echo "Sympa seems active. No action will be taken." @@ -258,17 +186,22 @@ case "$1" in echo "Status file for subsystem found." else echo "Status file for subsystem NOT found." + exit 1 fi sympa_status sympa + [ $? = 0 ] || exit 1 sympa_status bulk + [ $? = 0 ] || exit 1 sympa_status archived + [ $? = 0 ] || exit 1 sympa_status bounced + [ $? = 0 ] || exit 1 sympa_status task_manager + [ $? = 0 ] || exit 1 ;; restart) echo "Restarting Sympa subsystem: " $0 stop && $0 start - echo ;; *) echo "Usage: $0 {start|stop|status|restart}"