#!/bin/bash

### BEGIN INIT INFO
# Provides: 		siebel
# Description:		SiebelCRM Loyalty Card Client to Processing Service 
# Default-Start:	2 3 4 5
# Default-Stop:		0 1 6
# Required-Start:	networking
# Required-Stop:
# Short-Description:    Start or stop SiebelCRM service
### END INIT INFO

DAEMON=/opt/siebel/bin/siebeld
CFGFILE=/etc/opt/siebel/siebel.conf
PIDFILE=/var/opt/siebel/run/siebeld.pid

case "$1" in start)
    if [ ! -x ${DAEMON?} ]; then
        echo "Сервиc не существует."
        exit 0
    fi
    if [ ! -f ${CFGFILE?} ]; then
        echo "Нет файла с конфигурацией cервиса."
        exit 0
    fi

    PIDS=`ps ax | grep ${DAEMON?} | grep -v grep | awk '{print $1}'`
    if [ ! -z "${PIDS?}" ]; then
        echo "Сервис уже запущен, pid=${PIDS?}."
        exit 0
    fi
    
    if [ -f "${PIDFILE}" ] ; then
      rm -f "${PIDFILE}" 2>/dev/null
    fi  

    echo -n "Запуск сервиса SiebelCRM:"
    ${DAEMON} >/dev/null 2>&1
    ERR=$?
    #if [ $ERR -eq 0 ]; then
    echo "."
    #else
    #    echo " error $ERR."
    #fi
    ;;
stop)
    PIDS=`ps ax | grep ${DAEMON?} | grep -v grep | awk '{print $1}'`
    if [ -z "${PIDS?}" ]; then
      echo "Сервис остановлен."
    else
      echo -n "Останов сервиса SiebelCRM:"
      for procnum in ${PIDS?}
      do
        echo -n " pid=${procnum?}"
        kill ${procnum?}
        ERR=$?
        if [ $ERR -ne 0 ]; then
          echo -n "error $ERR "
        else
          if [ -f "${PIDFILE}" ] ; then
            rm -f "${PIDFILE}" 2>/dev/null
          fi  
        fi
      done
      echo "."
    fi
    ;;
restart|force-reload)
    $0 stop
    sleep 2
    $0 start
    ;;
*)
   echo "Usage: $0 {start|stop|restart|force-reload}" >&2
   exit 1
   ;;
esac

exit 0
