#!/bin/bash
#
# chkconfig: 34 96 4
# description: card check on rx200 S8

### BEGIN INIT INFO
# Provides: omgzmqbroker
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Should-Start:
# Should-Stop:
# Short-Description: forwards zmq messages
# Description: forwards zmq messages
### END INIT INFO

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

#Source Debug variable
[ -f /tmp/debugflag ] && . /tmp/debugflag
if [ -z "$DEBUG" ] ;  then
  DEBUG=""
fi

USER="root"

DAEMON="/opt/OfficeMaster/bin/coffee"
ROOT_DIR="/opt/OfficeMaster/infobroker/zmq_broker"
DISPLAYNAME="omgzmqbroker"
BROKER="$ROOT_DIR/omg-broker"
LOG_FILE="/var/log/omgzmqbroker.log"

LOCK_FILE="/var/lock/subsys/omgzmqbroker"

do_start()
{
        if [ ! -f "$LOCK_FILE" ] ; then
                echo -n $"Starting $DISPLAYNAME: "
                runuser -l "$USER" -c "DEBUG=$DEBUG $DAEMON $BROKER >> $LOG_FILE 2>&1 &" && echo_success || echo_failure
                RETVAL=$?
                echo
                [ $RETVAL -eq 0 ] && touch $LOCK_FILE
        else
                echo "$BROKER is locked. checking if it is running"
                pid=`ps -aefw | grep "$DAEMON $BROKER" | grep -v " grep " | awk '{print $2}'`
                if [ -z "$pid" ] ;then
                    echo "not running, removing lock file"
                    rm -f $LOCK_FILE
                    echo -n $"Starting $DISPLAYNAME: "
                    runuser -l "$USER" -c "DEBUG=$DEBUG $DAEMON $BROKER >> $LOG_FILE 2>&1 &" && echo_success || echo_failure
                    RETVAL=$?
                    echo
                    [ $RETVAL -eq 0 ] && touch $LOCK_FILE
                else
                    echo "already running with PID:$pid"
		    RETVAL=1
		fi
        fi
}
do_stop()
{
        echo -n $"Stopping $DISPLAYNAME: "
        pid=`ps -aefw | grep "$DAEMON $BROKER" | grep -v " grep " | awk '{print $2}'`
        kill -9 $pid > /dev/null 2>&1 && echo_success || echo_failure
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE
}

case "$1" in
        start)
                do_start
                ;;
        stop)
                do_stop
                ;;
        restart)
                do_stop
                do_start
                ;;
        *)
                echo "Usage: $0 {start|stop|restart}"
                RETVAL=1
esac

exit 0

