#!/bin/bash
### BEGIN INIT INFO
# Provides:          duoMonitor-daemon
# Required-Start:    $syslog
# Required-Stop:     $syslog
# Should-Start:      $network $time
# Should-Stop:       $network $time
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Starts duoMonitor-daemon.
### END INIT INFO

cd "$(dirname "$0")"
DEAMON_NAME=duoMonitor
DEAMON_USERNAME=root
DEAMON_PATH=/opt/charger/LCCL


mkdir /var/run/lcc > /dev/null 2>&1

PIDFILE=/var/run/lcc/$DEAMON_NAME.pid

#. /etc/init.d/functions

function running()
{
    if [ -f $PIDFILE ]; then
        DPID=`cat $PIDFILE`
        # lets check if the process is still running
       if ps -p $DPID 2>&1
        then
          return 0
        else 
          rm $PIDFILE
          return 1
        fi
    else
      return 1
    fi
    return 1
}

function start() {
        echo "Starting : $DEAMON_NAME"
        running
        if [[ $? = 0 ]]; then
          echo " already started"
          return
        fi
        if [ -e $PIDFILE ]; then
          rm $PIDFILE 2>&1
        fi
        touch $PIDFILE
        $DEAMON_PATH/bin/$DEAMON_NAME.sh > /dev/null 2>&1 &       
        echo $! > $PIDFILE
        DPID=`cat $PIDFILE`
        echo "$DEAMON_NAME Started with pid $DPID"
        return
}

function stop() {
        echo "Shutting down : $DEAMON_NAME"
        running
        if [[ $? != 0 ]]; then
          echo " already stopped"
          return
        fi
        DPID=`cat $PIDFILE`
        echo "killing $DPID"
        pkill -n -P $DPID
        sleep 5
        running
        if [[ $? != 0 ]]; then
          echo " already stopped"
          return
        fi
        running
        if [[ $? = 0 ]]; then
          pkill -n -P $DPID
          sleep 5
        fi
        running
        if [[ $? = 0 ]]; then
          pkill -n -P $DPID
          kill -9 $DPID
          sleep 5
        fi
        running
        if [[ $? = 0 ]]; then
           echo "still running try to hard kill the proces"
           pkill -9 -n -P $DPID
           sleep 2
           running
            if [[ $? = 0 ]]; then
               kill -9 $DPID
               killall -9 java
               echo "ERROR: still running could not hard kill the process"
               exit 2
            fi
        fi
        
        rm $PIDFILE
        return
}



case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
    status)
       running
        if [[ $? = 0 ]]; then
           echo "$DEAMON_NAME is running"
        else
           echo "$DEAMON_NAME is not running"
        fi
    ;;
    running)
       running
        ;;
    *)
        echo "Usage:  {start|stop|status|restart[|running]"
        exit 1
        ;;
esac
exit $?
