diff --git a/.checkpackageignore b/.checkpackageignore index c3ec943075..7c66dd52df 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -552,7 +552,6 @@ package/lirc-tools/0001-plugins-devinput.c-fix-build-with-musl-1.2.0.patch lib_p package/lirc-tools/0002-configure-add-disable-doc-option.patch lib_patch.Upstream package/lirc-tools/S25lircd lib_sysv.Indent lib_sysv.Variables package/live555/0001-Add-a-pkg-config-file-for-the-shared-libraries.patch lib_patch.Upstream -package/lldpd/S60lldpd Shellcheck lib_sysv.Indent lib_sysv.Variables package/lm-sensors/0001-no-host-ldconfig.patch lib_patch.Upstream package/lmbench/0001-scripts-build-use-bin-bash-as-shell.patch lib_patch.Upstream package/lmbench/0002-src-Makefile-add-lmbench-to-list-of-executables.patch lib_patch.Upstream diff --git a/package/lldpd/S60lldpd b/package/lldpd/S60lldpd index 3dfa6c1aa1..79605c2f02 100644 --- a/package/lldpd/S60lldpd +++ b/package/lldpd/S60lldpd @@ -1,25 +1,61 @@ #!/bin/sh -# -# Controls lldpd. -# -case $1 in - start) - printf "Starting lldpd: " - start-stop-daemon -S -q -p /var/run/lldpd.pid --exec /usr/sbin/lldpd - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - stop) - printf "Stopping lldpd: " - start-stop-daemon -K -q -p /var/run/lldpd.pid - [ $? = 0 ] && echo "OK" || echo "FAIL" - ;; - restart) - $0 stop - $0 start - ;; - *) - echo "Usage: $0 {start|stop|restart}" - exit 1 - ;; +DAEMON="lldpd" +PIDFILE="/var/run/$DAEMON.pid" + +LLDPD_ARGS="" + +# shellcheck source=/dev/null +[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" + +# lldpd daemonizes and creates the PID file itself, so tell it where to +# put it, but it does not remove it on exit. +start() { + printf 'Starting %s: ' "$DAEMON" + # shellcheck disable=SC2086 # we need the word splitting + start-stop-daemon --start --pidfile "$PIDFILE" \ + --exec "/usr/sbin/$DAEMON" \ + -- -p "$PIDFILE" $LLDPD_ARGS + status=$? + if [ "$status" -eq 0 ]; then + echo "OK" + else + echo "FAIL" + fi + return "$status" +} + +stop() { + printf 'Stopping %s: ' "$DAEMON" + start-stop-daemon --stop --pidfile "$PIDFILE" \ + --exec "/usr/sbin/$DAEMON" + status=$? + if [ "$status" -eq 0 ]; then + echo "OK" + else + echo "FAIL" + return "$status" + fi + while start-stop-daemon --stop --test --quiet --pidfile "$PIDFILE" \ + --exec "/usr/sbin/$DAEMON"; do + sleep 0.1 + done + rm -f "$PIDFILE" + return "$status" +} + +restart() { + stop + start +} + +case "$1" in + start|stop|restart) + "$1";; + reload) + # Restart, since there is no true "reload" feature. + restart;; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 esac