#!/bin/sh
#
# sflow-rt      sFlow-RT real-time sFlow analyzer
# Copyright (C) InMon Corporation 2014 ALL RIGHTS RESERVED
#
# chkconfig: 345 90 10
# description: InMon sFlow-RT real-time sFlow analyzer
# pidfile: /var/run/sflow-rt.pid 

### BEGIN INIT INFO
# Provides:          sflow-rt
# Required-Start:    
# Required-Stop:     
# Default-Start:     3 4 5
# Default-Stop:      0 1 2 6
# Short-Description: sflow-rt
# Description:       sFlow-RT real-time sFlow analyzer.
### END INIT INFO

NAME="sflow-rt"
START=/usr/local/sflow-rt/bin/run-rt
PIDFILE=/var/run/sflow-rt.pid

start() {
    echo -n "Starting $NAME: "
    if  [ -f $PIDFILE ]
    then
       PID=`cat $PIDFILE`
       if ps -p$PID | grep -q java
       then
           echo "already running (pid $PID)"
           return 0
       else
           rm -f $PIDFILE
       fi
    fi
    /bin/su - sflowrt -s /bin/sh -c "$START < /dev/null > /dev/null 2>&1 & echo \$! > /tmp/su.sflowrt.$$"
    PID=`cat /tmp/su.sflowrt.$$`
    rm -f /tmp/su.sflowrt.$$       
    sleep 2
    if kill -0 $PID > /dev/null 2>&1
    then
        echo $PID >> $PIDFILE
        echo "[  OK  ]"
        return 0
    else
        echo "[  FAILED  ]"
        return 1
    fi
}

status() {
    echo -n "$NAME "
    if [ -f $PIDFILE ]
    then
        PID=`cat $PIDFILE`
        if ps -p$PID | grep -q java
        then
            echo "is running (pid $PID)"
            return 0
        else
            echo "is dead (pid $PID)"
            return 1
        fi
    else
        echo "is not running"
        return 3
    fi
}

stop() {
    if [ -f $PIDFILE ]
    then
        PID=`cat $PIDFILE`
        echo -n "Stopping $NAME: "
        kill $PID > /dev/null 2>&1
        rm -f $PIDFILE
        echo "[  OK  ]"
    else
        echo "$NAME is not running"
    fi
    return 0
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status) 
        status
        ;;
    restart)
        stop
        sleep 2
        start
        ;;
    try-restart | force-reload | condrestart)
        if [ -f $PIDFILE ]
        then
            stop
            sleep 2
            start
        fi
        ;;
    *)
        echo "Usage: {start|stop|status|restart|try-restart}"
        exit 2
    ;;
esac
exit $?
