#!/bin/sh
#
### BEGIN INIT INFO
# Required-Start: syslog
# Required-Stop: syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: SNMP daemon
#       This shell script takes care of starting and stopping
#       snmpd.
### END INIT INFO
#

NAME=snmpd
DAEMON=/usr/sbin/$NAME

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

# Source networking configuration.
. /etc/sysconfig/network

# See how we were called.
case "$1" in
 start)
  [ ! -e $SVIlock ] || exit 1
  [ ${NETWORKING} != "no" ] || exit 6
  [ -x $DAEMON ] || exit 5

  # Start daemons.
  if [ -f /etc/snmp/snmpd.conf ]; then
    echo -n "Starting $IDENT services: "
    ssd -S -n $NAME -x $DAEMON -b -- -P /var/run/$NAME.pid -s $OPTIONS
    touch $SVIlock
    echo "."
  elif [ "$PROBABLY" = "goofing" ]; then
    echo "$VARIANT snmpd not configured: Skipped!"
  fi
  ;;

 stop)
  [ -f $SVIlock ] || exit 0

  # Stop daemons.
  echo -n "Stopping $IDENT: "
  ssd -K -p /var/run/$NAME.pid -n $NAME
  pid=`cat /var/run/$NAME.pid`; $RC_DEBUG && echo -n "($pid)"
  i=0; $RC_DEBUG && echo -n " "
  while [ $i -le 15 ]; do
    [ -d /proc/$pid/fd ] || { $RC_DEBUG && echo -n "X"; break; }
    i=$[ $i + 1 ]; sleep 1; $RC_DEBUG && echo -n "-"
    ssd -K -p /var/run/$NAME.pid -n $NAME
    echo -n "."
  done
  [ -d /proc/$pid/fd ] || ssd -K -s 9 -p /var/run/$NAME.pid -n $NAME

  echo "."
  rm -f $SVIlock
  ;;

 force-reload|reload)
  [ -e $SVIlock ] || exit 0

  $0 restart
  ;;
 
 restart)
  # Need to sleep after "stop" to give the compaq manager threads
  # a chance to finish
  $0 stop
  sleep 3
  $0 start
  ;;

 status)
  [ -e $SVIlock -a -e /var/run/$NAME.pid ] || exit 3

  exit 0
  ;;

 *)
  echo "Usage: snmpd {start|stop|restart|force-reload|reload}"
  exit 1
  ;;
esac

exit 0

