#! /bin/sh
#
# dbmon
#
# chkconfig:    - 95 10
# description:  A simple script to monitor MySQL queries.
# processname:  perl
# config:       /etc/sysconfig/dbmon-mysql
# pidfile:      /var/run/dbmon-mysql/pid

WITHOUT_RC_COMPAT=1

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

SourceIfNotEmpty /etc/sysconfig/dbmon-mysql

PERL=/usr/bin/perl
EXE=/usr/share/dbmon-mysql/dbmon.pl
PIDFILE=/var/run/dbmon-mysql/pid
LOCKFILE=/var/lock/subsys/dbmon-mysql
RETVAL=0
USER=_dbmon

[ -n "$rotate" ] && OPTIONS="--rotate "

[ -n "$host" ] || host="localhost:3306"
OPTIONS+="--host=$host "

[ -n "$killong" ] && OPTIONS+="--killlong=$killlong "
[ -n "$killvolatile" ] && OPTIONS+="--killvolatile "
[ -n "$killconn" ] && OPTIONS+="--killconn"
[ -n "$interval" ] && OPTIONS+="--interval=$interval"

start()
{
    action "Starting dbmon-mysql:" \
	start-stop-daemon --start --make-pidfile --pidfile "$PIDFILE" --user "$USER" \
	--background --chuid "$USER" --exec "$PERL" -- "$EXE" "$OPTIONS"
    RETVAL=$?
    [ "$RETVAL" -ne 0 ] || touch "$LOCKFILE"
    return $RETVAL
}

stop()
{
    action "Stopping dbmon-mysql:" \
	start-stop-daemon --stop --pidfile "$PIDFILE" --user $USER --exec "$PERL"
    RETVAL=$?
    [ "$RETVAL" -ne 0 ] || rm -f -- "$LOCKFILE" "$PIDFILE"
    return $RETVAL
}

restart()
{
    stop
    start
}

# See how we were called.
case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart|reload)
    restart
    ;;
    condstop)
    if [ -e "$LOCKFILE" ]; then
	stop
    fi
    ;;
    condrestart|condreload)
    if [ -e "$LOCKFILE" ]; then
	restart
    fi
    ;;
    status)
    status --pidfile "$PIDFILE" --expect-user "$USER" --displayname dbmon-mysql -- "$PERL"
    RETVAL=$?
    ;;
    *)
    msg_usage "${0##*/} {start|stop|reload|restart|condstop|condrestart|condreload|status}"
    RETVAL=1
esac

exit $RETVAL
