5 # Start UCD SNMP daemon and trap catcher. Backup the log file *first*
6 # since currently the daemon truncates and overwrites any pre-existing file.
8 # killproc() and pidofproc() lifted from Linux's /etc/init.d/functions.
10 # NOTE: Solaris users must uncomment the proper PSARGS definition below. XXX
13 USAGE="Usage: `basename $0` start|stop|restart"
17 #------------------------------------ -o-
20 DAEMONLOG=/var/log/snmpd.log
21 TRAPLOG=/var/log/snmptrapd.log
22 LOGDIR=/var/log/SNMPDLOGS
24 D=".`date '+%h%d_%H%M' | sed 's/\([a-z]\)0/\1/' | tr 'A-Z' 'a-z'`"
27 #PSARGS=-ef # Solaris.
29 DEBUGFLAG= # -D # Toggles use of debugging
34 #------------------------------------ -o-
35 # Function definitions.
37 killproc() { # <program> [signal]
48 echo "`basename $0`: Wrong arguments to killproc()." 1>&2
61 pid=`pidofproc $base 2>/dev/null`
63 pid=`ps $PSARGS | egrep $base | egrep -v egrep | egrep -v $0 | awk '{ print $2 }'`;
66 echo "`basename $0`: killproc: Could not find process ID."
73 # Kill with -TERM then -KILL by default. Use given
74 # instead if one was passed in.
76 [ "$notset" = 1 ] && {
81 awk '{print $2}' | grep $pid`" ] && {
92 rm -f /var/run/$base.pid
97 pidofproc() { # <program>
101 echo "`basename $0`: Wrong argument to pidofproc()." 1>&2
106 # Try looking for a /var/run file.
108 [ -f /var/run/$1.pid ] && {
109 pid=`head -1 /var/run/$1.pid`
118 # Try pidof. (Linux offering.)
129 ps $PSARGS | awk ' BEGIN { prog=ARGV[1]; ARGC=1 }
130 { if ((prog == $11) ||
131 (("(" prog ")") == $11) ||
141 #------------------------------------ -o-
146 echo "Starting SNMP. "
148 cp $DAEMONLOG ${DAEMONLOG}$D
149 cp $TRAPLOG ${TRAPLOG}$D
150 cat /dev/null >$TRAPLOG
152 [ ! -e $LOGDIR ] && mkdir $LOGDIR
153 mv ${DAEMONLOG}$D ${TRAPLOG}$D $LOGDIR
154 gzip -r $LOGDIR 2>/dev/null &
156 snmpd -a -d -V $DEBUGFLAG
157 snmptrapd -P >>$TRAPLOG &
163 echo -n "Shutting down SNMP: "
183 #------------------------------------ -o-