From: Joachim Wiberg <troglobit@gmail.com>
To: buildroot@buildroot.org
Cc: Fiona Klute <fiona.klute@gmx.de>,
Joachim Wiberg <troglobit@gmail.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Julien Olivain <ju.o@free.fr>
Subject: [Buildroot] [PATCH v2 2/2] package/lldpd: rework start script
Date: Thu, 17 Sep 2026 18:05:43 +0200 [thread overview]
Message-ID: <20260917160543.243218-3-troglobit@gmail.com> (raw)
In-Reply-To: <20260914103020.3485030-1-troglobit@gmail.com>
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>
---
.checkpackageignore | 1 -
package/lldpd/S60lldpd | 80 ++++++++++++++++++++++++++++++------------
2 files changed, 58 insertions(+), 23 deletions(-)
diff --git a/.checkpackageignore b/.checkpackageignore
index 2fc8349f1e..32be4c93aa 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -550,7 +550,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
--
2.43.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2026-09-17 16:06 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-14 10:30 [Buildroot] [PATCH 1/1] package/mrouted: bump to version 4.7 Joachim Wiberg
2026-09-17 7:44 ` Thomas Petazzoni via buildroot
2026-09-17 14:12 ` Joachim Wiberg
2026-09-17 15:08 ` Thomas Petazzoni via buildroot
2026-09-17 16:05 ` [Buildroot] [PATCH v2 0/2] " Joachim Wiberg
2026-09-17 16:10 ` Joachim Wiberg
2026-09-17 16:05 ` [Buildroot] [PATCH v2 1/2] package/lldpd: security bump to version 1.0.22 Joachim Wiberg
2026-09-17 16:11 ` Joachim Wiberg
2026-09-17 16:05 ` Joachim Wiberg [this message]
2026-09-17 16:12 ` [Buildroot] [PATCH v2 2/2] package/lldpd: rework start script Joachim Wiberg
2026-09-25 14:46 ` Raphaël Mélotte via buildroot
2026-09-20 20:04 ` [Buildroot] [PATCH v2 0/2] package/mrouted: bump to version 4.7 Joachim Wiberg
2026-09-20 20:04 ` [Buildroot] [PATCH v2 1/2] package/mrouted: fix invalid daemon path in S41mrouted Joachim Wiberg
2026-09-22 17:26 ` Julien Olivain via buildroot
2026-10-02 10:29 ` Raphaël Mélotte via buildroot
2026-09-20 20:04 ` [Buildroot] [PATCH v2 2/2] package/mrouted: bump to version 4.7 Joachim Wiberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260917160543.243218-3-troglobit@gmail.com \
--to=troglobit@gmail.com \
--cc=buildroot@buildroot.org \
--cc=fiona.klute@gmx.de \
--cc=ju.o@free.fr \
--cc=thomas.petazzoni@bootlin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.