#!/bin/sh
# For RedHat and cousins:
# chkconfig: - 99 01
# description: SSM Query Analytics MongoDB agent
# processname: /opt/ss/qan-agent/bin/ssm-qan-agent

### BEGIN INIT INFO
# Provides:          /opt/ss/qan-agent/bin/ssm-qan-agent
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: SSM Query Analytics MongoDB agent
# Description:       SSM Query Analytics MongoDB agent
### END INIT INFO

cmd='/opt/ss/qan-agent/bin/ssm-qan-agent'

name=$(basename $(readlink -f $0))
pid_file="/var/run/$name.pid"
log_file="/var/log/$name.log"



[ -e /etc/sysconfig/$name ] && . /etc/sysconfig/$name

get_pid() {
    cat "$pid_file"
}

is_running() {
    [ -f "$pid_file" ] && ps $(get_pid) > /dev/null 2>&1
}

case "$1" in
    start)
        if is_running; then
            echo "Already started"
        else
            echo "Starting $name"
            
            $cmd >> "$log_file" 2>&1 &
            echo $! > "$pid_file"
            if ! is_running; then
                echo "Unable to start, see $log_file"
                exit 1
            fi
        fi
    ;;
    stop)
        if is_running; then
            echo -n "Stopping $name.."
            kill $(get_pid)
            for i in $(seq 1 10)
            do
                if ! is_running; then
                    break
                fi
                echo -n "."
                sleep 1
            done
            echo
            if is_running; then
                echo "Not stopped; may still be shutting down or shutdown may have failed"
                exit 1
            else
                echo "Stopped"
                if [ -f "$pid_file" ]; then
                    rm "$pid_file"
                fi
            fi
        else
            echo "Not running"
        fi
    ;;
    restart)
        $0 stop
        if is_running; then
            echo "Unable to stop, will not attempt to start"
            exit 1
        fi
        $0 start
    ;;
    status)
        if is_running; then
            echo "$name (pid $(get_pid)) is running..."
        else
            echo "$name is stopped"
            exit 1
        fi
    ;;
    *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac
exit 0