From a95929030293324cab989c6ab6675606ead1d7a6 Mon Sep 17 00:00:00 2001 From: Jackie Huang Date: Fri, 16 Jan 2015 14:14:03 +0800 Subject: net-snmp: init script fixes Changes: 1. Add source function and status command. 2. make it possible to change the start arguments with a default file in the same way as debian. 3. change the default INITSCRIPT_PARAMS 4. Add PIDFILE and fix restart 5. remove the postrm sicne we use the one from update-rc.d Signed-off-by: Jackie Huang Signed-off-by: Joe MacDonald --- .../recipes-protocols/net-snmp/files/init | 51 +++++++++++----------- 1 file changed, 26 insertions(+), 25 deletions(-) (limited to 'meta-networking/recipes-protocols/net-snmp/files') diff --git a/meta-networking/recipes-protocols/net-snmp/files/init b/meta-networking/recipes-protocols/net-snmp/files/init index 6b02570c66..2b8fe18b34 100755 --- a/meta-networking/recipes-protocols/net-snmp/files/init +++ b/meta-networking/recipes-protocols/net-snmp/files/init @@ -1,6 +1,8 @@ #! /bin/sh # /etc/init.d/snmpd: start snmp daemon. +. /etc/init.d/functions + test -x /usr/sbin/snmpd || exit 0 test -x /usr/sbin/snmptrapd || exit 0 @@ -10,21 +12,23 @@ 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 -# Cd to / before starting any daemons. -cd / +# Reads config file if exists (will override defaults above) +[ -r /etc/default/snmpd ] && . /etc/default/snmpd case "$1" in start) echo -n "Starting network management services:" - if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then - start-stop-daemon -S -x /usr/sbin/snmpd \ - -- $SNMPDOPTS + 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 ]; then - start-stop-daemon -S -x /usr/sbin/snmptrapd \ - -- $TRAPDOPTS + 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 "." @@ -33,32 +37,29 @@ case "$1" in ;; stop) echo -n "Stopping network management services:" - start-stop-daemon -K -x /usr/sbin/snmpd + if [ -f "$PIDFILE" ] ; then + start-stop-daemon -o --stop --quiet --pidfile $PIDFILE --name snmpd + fi echo -n " snmpd" - start-stop-daemon -K -x /usr/sbin/snmptrapd + 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) - echo -n "Restarting network management services:" - start-stop-daemon -K -x /usr/sbin/snmpd - start-stop-daemon -K -x /usr/sbin/snmptrapd + $0 stop # Allow the daemons time to exit completely. sleep 2 - if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then - start-stop-daemon -S -x /usr/sbin/snmpd -- $SNMPDOPTS - echo -n " snmpd" - fi - if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then - # Allow snmpd time to start up. - sleep 1 - start-stop-daemon -S -x /usr/sbin/snmptrapd -- $TRAPDOPTS - echo -n " snmptrapd" - fi - echo "." + $0 start ;; *) - echo "Usage: /etc/init.d/snmpd {start|stop|restart|reload|force-reload}" + echo "Usage: /etc/init.d/snmpd {start|stop|status|restart|reload|force-reload}" exit 1 esac -- cgit v1.2.3-54-g00ecf