#!/bin/bash
#
# (c) Copyright 2011-2016 Hewlett Packard Enterprise Development Company, L.P.
#
# See "man chkconfig" for information on next two lines (Red Hat only)
# chkconfig: - 51 49
# description: HPE SNMP Agents. 
#
#
# Following lines are in conformance with LSB 1.2 spec
### BEGIN INIT INFO
# Provides:            amsd_rev
# Required-Start:      snmpd
# Required-Stop:       
# Default-Stop:        0 1 6
# Default-Start:       2 3 4 5
# Description:         starts OS helper for AMS in reverse mode
# Short-Description:   AMS helper (Reverse Mode)
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME="Agentless Management Service (Reverse Mode)"
SNAME="amsd"
RNAME="amsd_rev"
AMS_OPTIONS="-R"

if [ -f /etc/sysconfig/amsd_rev ]; then
  . /etc/sysconfig/amsd_rev
fi
if [ -f "/etc/default/amsd_rev" ]; then
  . /etc/default/amsd_rev
fi

case "$1" in
   start)
      modprobe -q pci_slot
      if [ ! -d /sys/class/cpuid ]; then
          modprobe cpuid
      fi
      if [ "$ALLOW_CORE" = "y" ]; then 
        mkdir -p /var/log/cores/amsd_rev
        echo "/var/log/cores/%e/%p-%s-%t.core" > /proc/sys/kernel/core_pattern
        ulimit -c unlimited
      fi

      pid=`ps -C $RNAME -o pid=`
      for i in $pid ; do
          ps -p $i -o cmd=|grep -v -q init.d; RC=$?
	  if [ "$RC" -eq "0" ] ; then
              echo "$RNAME is already running.  Please stop $RNAME or use 'restart'"
              exit 1
          fi
          /sbin/$SNAME $AMS_OPTIONS; RC=$?

      if [ "$RC" -eq "0" ]; then
         [ -d /var/lock/subsys ] && touch /var/lock/subsys/amsd_rev
      fi
      exit $RC
      done
   ;;
   stop)
      RC=0;
      pid=`ps -C $RNAME -o pid= `
      kill $pid > /dev/null 2>&1; RC=$?
      if [ "$RC" -eq "1" ]; then
         [ -d /var/lock/subsys ] && rm -rf /var/lock/subsys/amsd_rev
         exit 0
      else
        sleep 3
        kill $pid > /dev/null 2>&1; RC=$?
        if [ "$RC" -eq "1" ]; then
           [ -d /var/lock/subsys ] && rm -rf /var/lock/subsys/amsd_rev
           exit 0
        else
          sleep 3
          killall -9 $pid > /dev/null 2>&1
            [ -d /var/lock/subsys ] && rm -rf /var/lock/subsys/amsd_rev
          exit 0
        fi
      fi    
   ;;
   reload)
   ;;
   restart)
      $0 stop
      sleep 5
      $0 start
   ;;
   status)
       for i in `ps -C $RNAME -o pid= ` ; do
          ps -p $i -o cmd=|grep -v -q init.d; RC=$?
          if [ "$RC" -eq "0" ] ; then
              echo "$RNAME is running..."
              exit 0
          else
              echo "$RNAME is stopped..."
          fi
       done
   ;;
   *)
     echo "Usage: /etc/init.d/amsd_rev {start|stop|restart|status}"
     exit 1
esac

exit 0 
