#!/bin/sh
#
# mysql-mmm-agent    This shell script takes care of starting and stopping
#                    the mmm agent daemon.
#
# chkconfig: - 64 36
# description:  MMM Agent.
# processname: mmm_agentd
# config: /etc/mmm_agent.conf
# pidfile: /var/run/mmm_agentd.pid

# Cluster name (it can be empty for default cases)
CLUSTER=''


#-----------------------------------------------------------------------
# Paths
if [ "$CLUSTER" != "" ]; then
    MMM_AGENTD_BIN="/usr/sbin/mmm_agentd @$CLUSTER"
    MMM_AGENTD_PIDFILE="/var/run/mmm_agentd-$CLUSTER.pid"
else 
    MMM_AGENTD_BIN="/usr/sbin/mmm_agentd"
    MMM_AGENTD_PIDFILE="/var/run/mmm_agentd.pid"
fi

echo "Daemon bin: '$MMM_AGENTD_BIN'"
echo "Daemon pid: '$MMM_AGENTD_PIDFILE'"

#-----------------------------------------------------------------------
# See how we were called.
case "$1" in
  start)
        # Start daemon.
        echo -n "Starting MMM Agent daemon... "
        if [ -s $MMM_AGENTD_PIDFILE ] && kill -0 `cat $MMM_AGENTD_PIDFILE` 2> /dev/null; then
            echo " already running."
            exit 0
        fi
        $MMM_AGENTD_BIN
        if [ "$?" -ne 0 ]; then
            echo "failed"
            exit 1
        fi
        echo "Ok"
        exit 0
        ;;

  stop)
        # Stop daemon.
        echo -n "Shutting down MMM Agent daemon"
        if [ -s $MMM_AGENTD_PIDFILE ]; then
            pid="$(cat $MMM_AGENTD_PIDFILE)"
            cnt=0
            kill "$pid"
            while kill -0 "$pid" 2>/dev/null; do
                cnt=`expr "$cnt" + 1`
                if [ "$cnt" -gt 15 ]; then
                    kill -9 "$pid"
                    break
                fi
                sleep 2
                echo -n "."
            done
            echo " Ok"
            exit 0
        fi
        echo " not running."
        exit 0
        ;;

  status)
        echo -n "Checking MMM Agent process:"
        if [ ! -s $MMM_AGENTD_PIDFILE ]; then
            echo " not running."
            exit 3
        fi
        pid="$(cat $MMM_AGENTD_PIDFILE)"
        if ! kill -0 "$pid" 2> /dev/null; then
            echo " not running."
            exit 1
        fi
        echo " running."
        exit 0
        ;;

  restart|reload)
        $0 stop
        $0 start
        exit $?
        ;;

  *)
        echo "Usage: $0 {start|stop|restart|status}"
        ;;
esac

exit 1
