mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-10-01 06:21:56 -09:00
package/lldpd: rework start script
check-package reports six warnings on S60lldpd: indentation with
spaces, no DAEMON variable, and shellcheck complaints.
The script also masks failures, the exit status of
"[ $? = 0 ] && echo OK || echo FAIL" is the one of echo, so start and
stop always return success. Stopping does not wait for the daemon to
exit either, so a restart can race the instance on its way out.
Rewrite it after package/busybox/S01syslogd, as the manual asks. lldpd
daemonizes and writes the PID file itself, but does not remove it on
exit, so pass the PID file to both start-stop-daemon and the daemon and
drop the stale file once the process is gone. Also pick up arguments
from /etc/default/lldpd and add the customary reload alias.
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
[Julien: remove .checkpackageignore entry to fix check-package error]
Signed-off-by: Julien Olivain <ju.o@free.fr>
(cherry picked from commit 2fd1f6b629)
Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
This commit is contained in:
committed by
Raphaël Mélotte
parent
e12ef9c652
commit
2a1acd674a
@@ -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/0002-configure-add-disable-doc-option.patch lib_patch.Upstream
|
||||||
package/lirc-tools/S25lircd lib_sysv.Indent lib_sysv.Variables
|
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/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/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/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
|
package/lmbench/0002-src-Makefile-add-lmbench-to-list-of-executables.patch lib_patch.Upstream
|
||||||
|
|||||||
@@ -1,25 +1,61 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
|
||||||
# Controls lldpd.
|
|
||||||
#
|
|
||||||
|
|
||||||
case $1 in
|
DAEMON="lldpd"
|
||||||
start)
|
PIDFILE="/var/run/$DAEMON.pid"
|
||||||
printf "Starting lldpd: "
|
|
||||||
start-stop-daemon -S -q -p /var/run/lldpd.pid --exec /usr/sbin/lldpd
|
LLDPD_ARGS=""
|
||||||
[ $? = 0 ] && echo "OK" || echo "FAIL"
|
|
||||||
;;
|
# shellcheck source=/dev/null
|
||||||
stop)
|
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
|
||||||
printf "Stopping lldpd: "
|
|
||||||
start-stop-daemon -K -q -p /var/run/lldpd.pid
|
# lldpd daemonizes and creates the PID file itself, so tell it where to
|
||||||
[ $? = 0 ] && echo "OK" || echo "FAIL"
|
# put it, but it does not remove it on exit.
|
||||||
;;
|
start() {
|
||||||
restart)
|
printf 'Starting %s: ' "$DAEMON"
|
||||||
$0 stop
|
# shellcheck disable=SC2086 # we need the word splitting
|
||||||
$0 start
|
start-stop-daemon --start --pidfile "$PIDFILE" \
|
||||||
;;
|
--exec "/usr/sbin/$DAEMON" \
|
||||||
*)
|
-- -p "$PIDFILE" $LLDPD_ARGS
|
||||||
echo "Usage: $0 {start|stop|restart}"
|
status=$?
|
||||||
exit 1
|
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
|
esac
|
||||||
|
|||||||
Reference in New Issue
Block a user