#      This shell script takes care of starting and stopping MWBCC.
#
# chkconfig: 5 80 30
# description: add RCPT system.
# processname: mwbcc
# config: /etc/mail/mwbcc/mwbcc.xml
# pidfile: /var/run/mwbcc.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -f /opt/nec/mail/mwbcc/mwbcc ] || exit 0
# See how we were called.
case "$1" in
  start)
        # Start daemons.
        echo -n "MWBCC Starting: "
                if [ -f /var/run/mwbcc.pid ]; then
            pid=`head -1 /var/run/mwbcc.pid`
            if [ -f /proc/$pid/cmdline ]; then
                cmd=`cat /proc/$pid/status | head -1 | awk '{ print $2 }'`
                if [ $cmd == "mwbcc" ]; then
                    echo -n "already MWBCC running..."
                    exit 0
                fi
            fi
        fi
        daemon /opt/nec/mail/mwbcc/mwbcc
        RETVAL=$?
        echo
        if [ $RETVAL = 0 ]; then
                touch /var/lock/subsys/mwbcc
        fi
        ;;
  stop)
        if [ -s /var/run/mwbcc.pid ] ; then
                pid=$(cat /var/run/mwbcc.pid)
                kill -TERM $pid
                loop=0
                while [ $loop -lt 15 ] ; do
                        kill -0 $pid >/dev/null 2>&1 || break
                        [ $loop -eq 1 ] && echo -n "Sleeping for 15 seconds to allow mwbcc to shutdown"
                        [ $loop -ge 1 ] && echo -n "."
                        sleep 1
                        loop=$(( $loop + 1 ))
                done
                kill -0 $pid >/dev/null 2>&1 && echo $"not stop" || echo $"done" && rm -f /var/lock/subsys/mwbcc
	else
		kill -TERM $(pgrep mwbcc) >/dev/null 2>&1 && echo $"not stop" || echo $"done" && rm -f /var/lock/subsys/mwbcc
        fi
        ;;

reload)

 if [ -f /var/run/mwbcc.pid ]; then
            pid=`head -1 /var/run/mwbcc.pid`
            if [ -f /proc/$pid/cmdline ]; then
                cmd=`cat /proc/$pid/status | head -1 | awk '{ print $2 }'`
                if [ $cmd == "mwbcc" ]; then
                    kill -USR1 $pid
                    echo -n "MWBCC"
                fi
            fi
        fi
        echo
        ;;

restart)

 if [ -f /var/run/mwbcc.pid ]; then
            pid=`head -1 /var/run/mwbcc.pid`
            if [ -f /proc/$pid/cmdline ]; then
                cmd=`cat /proc/$pid/status | head -1 | awk '{ print $2 }'`
                if [ $cmd == "mwbcc" ]; then
                    kill -USR1 $pid
                    echo -n "MWBCC"
                fi
            fi
        fi
        echo
        ;;

status)

         if [ -f /var/run/mwbcc.pid ]; then
                pid=`head -1 /var/run/mwbcc.pid`
                if [ -f /proc/$pid/cmdline ]; then
                        cmd=`cat /proc/$pid/status | head -1 | awk '{ print $2 }'`
                        if [ $cmd == "mwbcc" ]; then
                                echo "mwbcc (pid $pid) is running..."
                        else
                                echo "mwbcc is stopped."
                        fi
                else
                        echo "mwbcc is stopped."
                fi
        else
                echo "mwbcc is stopped."
        fi
        ;;

*)
        echo "Usage: mwbcc {start|stop|reload|status}"
        exit 1
esac

exit 0


