#!/bin/sh
#
# bukts-trkagent Startup script for the AZS-side Web Payments TRK Monitor Agent
#
### BEGIN INIT INFO
# Provides: bukts-trkagent
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6 
# Short-Description: Web Payments TRK Monitor Agent
# Description: Web Payments TRK Monitor
### END INIT INFO

SCRIPTNAME=$(basename $0)
INSTPATH="/opt/bukts-webpay"

TRKAGNT_APP="${INSTPATH}/libexec/bukts-trkagent"
TRKAGNT_CFG="/etc${INSTPATH}/bukts-trkagent.conf"
TRKAGNT_ARGS="-c ${TRKAGNT_CFG}"
APPNAME=$(basename $TRKAGNT_APP)
TRKAGNT_RUNPATH="/var${INSTPATH}/run/"
TRKAGNT_PID="${TRKAGNT_RUNPATH}/${APPNAME}.pid"
TRKAGNT_USER="www-data"
TRKAGNT_GROUP="www-data"

DESC="Агент Мониторнга ТРК для Мобильных платежей"
ERR=0

# Gracefully exit if the package has been removed.
test -x ${TRKAGNT_APP?} || exit 0

start() {
    ERR=0
    echo -n "Запуск сервиса \"$DESC\" :"

    if [ ! -f ${TRKAGNT_CFG?} ]; then
        echo "Отсутствует файла с конфигурацией cервиса."
        exit 0
    fi

    PIDS=`ps ax | grep ${TRKAGNT_APP?} | grep -v grep | awk '{print $1}'`
    if [ ! -z "${PIDS?}" ]; then
        echo " Сервис уже работает (pid=${PIDS?})"
        exit 0
    fi

    if [ -f "${TRKAGNT_PID}" ] ; then
        rm -f "${TRKAGNT_PID}" 2>/dev/null
    fi

    sudo -u $TRKAGNT_USER $TRKAGNT_APP $TRKAGNT_ARGS > /dev/null 2>&1

    ERR=$?
    if [ $ERR -ne 0 ]; then
        echo -n " ERROR"
    else
        if [ -f "${TRKAGNT_PID}" ] ; then
            procnum=`cat ${TRKAGNT_PID} 2>/dev/null`
        fi
        echo -n " OK [${procnum?}]"
    fi
    echo "."
}

stop() {
    echo -n "Остановка сервиса \"$DESC\" :"

    PIDS=`ps ax | grep ${TRKAGNT_APP?} | grep -v grep | awk '{print $1}'`
    if [ -z "${PIDS?}" ]; then
        echo -n "Нет работающего сервиса"
    else
        ERR=0
        for procnum in ${PIDS?}
        do
            kill ${procnum?}
            ERR=$?
            if [ $ERR -ne 0 ]; then
                echo -n " ERROR [${procnum?}]"
            else
                echo -n " OK [${procnum?}]"
                if [ -f "${TRKAGNT_PID}" ] ; then
                    rm -f "${TRKAGNT_PID}" 2>/dev/null
                fi
            fi
        done
    fi
    echo "."
    #kill -QUIT `cat $AZSMONTRK_PID` || echo -n "not running"
}

restart() {
    kill -HUP `cat $TRKAGNT_PID` || echo -n "can not reload"
}

case "$1" in
  start)
      start
      ;;
  stop)
      stop
      ;;
  restart|reload|force-reload)
      stop
      # One second might not be time enough for a daemon to stop,
      # if this happens, d_start will fail (and dpkg will break if
      # the package is being upgraded). Change the timeout if needed
      # be, or change d_stop to have start-stop-daemon use --retry.
      # Notice that using --retry slows down the shutdown process somewhat.
      sleep 1
      start
      ;;
  *)
      echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
      exit 3
      ;;
esac

exit $?
