Advertisement
Guest User

SystemV lsi_mrdsnmpd init script

a guest
Dec 30th, 2015
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.82 KB | None | 0 0
  1. ~]# ls -l /etc/init.d/lsi_mrdsnmpd ^C
  2.  
  3. ~]# cat /etc/lsi_mrdsnmp/lsi_mrdsnmpd.rh
  4. #!/bin/sh
  5. #chkconfig: 2345 55 80
  6. #description: LSI SNMP Agent startup/shutdown script
  7. #Source function library.
  8. . /etc/init.d/functions  
  9.  
  10. megadevice="megasnmp"
  11. agent="/usr/sbin/lsi_mrdsnmpagent"
  12. agent_name="lsi_mrdsnmpagent"
  13. pidfile="mrdsnmpd"
  14. vendor="LSI SNMP"  
  15. RETVAL=0
  16. SNMPDCONF=/etc/snmp/snmpd.conf
  17.  
  18.  
  19. #A function to stop a program.
  20. statuscheck() {
  21.     local base=${1}
  22.     local pid
  23.  
  24.     # Test syntax.
  25.     if [ "$#" = 0 ] ; then
  26.         echo $"Usage: status {program}"
  27.         return 1
  28.     fi
  29.  
  30.     # First try "pidof"
  31.     pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
  32.          pidof -o $$ -o $PPID -o %PPID -x ${base}`
  33.     if [ -n "$pid" ]; then
  34.             echo $"${base} (pid $pid) is running..."
  35.             return 0
  36.     fi
  37.  
  38.     # Next try "/var/run/*.pid" files
  39.     if [ -f /var/run/${base}.pid ] ; then
  40.             read pid < /var/run/${base}.pid
  41.             if [ -n "$pid" ]; then
  42.                     echo $"${base} dead but pid file exists"
  43.                     return 1
  44.             fi
  45.     fi
  46.     # See if /var/lock/subsys/${base} exists
  47.     if [ -f /var/lock/subsys/${base} ]; then
  48.         echo $"${base} dead but subsys locked"
  49.         return 2
  50.     fi
  51.     echo $"${base} is stopped"
  52.     return 3
  53. }
  54.  
  55. mykillproc()
  56. {
  57.     RC=0
  58.     # Test syntax.
  59.     if [ $# = 0 ]; then
  60.         echo "Usage: killproc {program} [signal]"
  61.         return 1
  62.     fi
  63.  
  64.     notset=0
  65.     # check for second arg to be kill level
  66.     if [ "$2" != "" ] ; then
  67.         killlevel=$2
  68.     else
  69.         notset=1
  70.         killlevel="-9"
  71.     fi
  72.  
  73.         # Save basename.
  74.         base=`basename $1`
  75.  
  76.         # Find pid.
  77.     pid=`pidof $1 | cut -f1 -d" "` 
  78.  
  79.         # Kill it.
  80.         if [ "$pid" != "" ] ; then
  81.                 [ "$BOOTUP" = "verbose" ] && echo -n "$base "
  82.         if [ "$notset" = "1" ] ; then
  83.                if ps h $pid >/dev/null 2>&1; then
  84.                # TERM first, then KILL if not dead
  85.                kill -TERM $pid
  86.                usleep 200000
  87.                if ps h $pid >/dev/null  >/dev/null 2>&1 ; then
  88.                 sleep 1
  89.                 if ps h $pid >/dev/null  >/dev/null 2>&1 ; then
  90.                         sleep 3
  91.                     if ps h $pid >/dev/null  >/dev/null 2>&1 ; then
  92.                        kill -KILL $pid
  93.                        usleep 200000
  94.                     fi
  95.                 fi
  96.                fi
  97.                 fi
  98.             ps h $pid >/dev/null  >/dev/null 2>&1
  99.             RC=$?
  100.             [ $RC -eq 0 ] && failure "$base shutdown" || success "$base shutdown"
  101.             RC=$((! $RC))
  102.         # use specified level only
  103.         else
  104.                 if ps h $pid >/dev/null  >/dev/null 2>&1; then
  105.                         kill $killlevel $pid
  106.                 RC=$?
  107.                 [ $RC -eq 0 ] && success "$base $killlevel" || failure "$base $killlevel"
  108.             fi
  109.         fi
  110.     else
  111.         failure "$base shutdown"
  112.     fi
  113.  
  114.         # Remove pid file if any.
  115.     if [ "$notset" = "1" ]; then
  116.             rm -f /var/run/$base.pid
  117.     fi
  118.     return $RC
  119. }
  120.  
  121.  
  122. start()
  123. {
  124.     echo -n "Starting $vendor Agent:"
  125.     spid=`pidof snmpd`
  126.     agentpid=`pidof $agent`
  127.     if [ "$agentpid" != "" ] ; then
  128.                 echo " is Already Running";
  129.                 return 0
  130.     fi
  131.     rhel_ver=`cat /etc/redhat-release | grep '7'| wc -l` # Check for RHEL 7 Operating System
  132.     oel_ver=`cat /etc/oracle-release | grep '7'| wc -l` # Check for OEL 7 Operating System
  133.     if ( "$rhel_ver" == "1" && "$oel_ver" == "0" ) ; then
  134.                ${systemctl} start ${snmpd}
  135.     else
  136.         if [ "$spid" = "" ] ; then
  137.         if [ -x /etc/init.d/snmpd ] ; then
  138.             /etc/init.d/snmpd start
  139.         elif [ -x /usr/local/sbin/snmpd ] ; then
  140.             /usr/local/sbin/snmpd
  141.         else
  142.             echo SNMP Daemon not started
  143.         fi
  144.       fi
  145.     fi
  146.         daemon ${agent} -c ${SNMPDCONF}
  147.     echo
  148. }
  149.  
  150. stop()
  151. {
  152.     echo -n "Stopping $vendor Agent:"
  153.     killproc ${agent}
  154.     echo
  155.     return 0
  156. }
  157.  
  158. case "$1" in
  159.   start)
  160.     start
  161.     ;;
  162.   stop)
  163.     stop
  164.     ;;
  165.   restart|reload)
  166.     $0 stop
  167.     $0 start
  168.     ;;
  169.  status)
  170.      
  171.         statuscheck ${agent_name}
  172.     RETVAL=$?
  173.         ;;
  174.   *)
  175.     echo "$vendor Agent is not Started/Stopped"
  176.       echo "Usage: $0 {start|stop|restart|status}"
  177.     exit 1
  178. esac
  179.  
  180. exit $RETVAL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement