meta-openembedded/meta-networking/recipes-protocols/net-snmp/files/init
Bill Randle ba0e19ad5b net-snmp: check that executable is used before testing for existance
The recipe for net-snmp has snmpd and snmptrapd in seperate packages, so one or the other
or both could be installed. In a common case where only snmpd is installed, the startup
script will fail to run because the snmptrapd executable does not exist.

This patch simply qualifies the test by first checking to see if the executable is to
be used.

    -Bill

Signed-off-by: Bill Randle <bill.randle@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
2017-10-11 16:22:49 -04:00

67 lines
1.8 KiB
Bash
Executable File

#! /bin/sh
# /etc/init.d/snmpd: start snmp daemon.
. /etc/init.d/functions
# Defaults
export MIBDIRS=/usr/share/snmp/mibs
SNMPDRUN=yes
SNMPDOPTS='-Lsd -Lf /dev/null -p /var/run/snmpd.pid'
TRAPDRUN=no
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
PIDFILE=/var/run/snmpd.pid
SPIDFILE=/var/run/snmptrapd.pid
# Reads config file if exists (will override defaults above)
[ -r /etc/default/snmpd ] && . /etc/default/snmpd
[ "$SNMPDRUN" = "yes" ] && { test -x /usr/sbin/snmpd || exit 0; }
[ "$TRAPDRUN" = "yes" ] && { test -x /usr/sbin/snmptrapd || exit 0; }
case "$1" in
start)
echo -n "Starting network management services:"
if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf -a ! -f "$PIDFILE" ]; then
start-stop-daemon -o --start --quiet --name snmpd --pidfile "$PIDFILE" \
--exec /usr/sbin/snmpd -- $SNMPDOPTS
echo -n " snmpd"
fi
if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf -a ! -f "$SPIDFILE" ]; then
start-stop-daemon -o --start --quiet --name snmptrapd --pidfile "$SPIDFILE" \
--exec /usr/sbin/snmptrapd -- $TRAPDOPTS
echo -n " snmptrapd"
fi
echo "."
test ! -x /sbin/restorecon || /sbin/restorecon -FR /var/lib/net-snmp
;;
stop)
echo -n "Stopping network management services:"
if [ -f "$PIDFILE" ] ; then
start-stop-daemon -o --stop --quiet --pidfile $PIDFILE --name snmpd
fi
echo -n " snmpd"
if [ -f "$SPIDFILE" ] ; then
start-stop-daemon -o --stop --quiet --pidfile $SPIDFILE --name snmptrapd
rm -rf $SPIDFILE
fi
echo -n " snmptrapd"
echo "."
;;
status)
status /usr/sbin/snmpd;
exit $?
;;
restart|reload|force-reload)
$0 stop
# Allow the daemons time to exit completely.
sleep 2
$0 start
;;
*)
echo "Usage: /etc/init.d/snmpd {start|stop|status|restart|reload|force-reload}"
exit 1
esac
exit 0