From: Joachim Wiberg <troglobit@gmail.com>
To: buildroot@buildroot.org
Cc: Fiona Klute <fiona.klute@gmx.de>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Julien Olivain <ju.o@free.fr>
Subject: Re: [Buildroot] [PATCH v2 2/2] package/lldpd: rework start script
Date: Thu, 17 Sep 2026 18:12:01 +0200 [thread overview]
Message-ID: <827779cbc5d27660618d1389c6dca48eae00e9d1.camel@gmail.com> (raw)
In-Reply-To: <20260917160543.243218-3-troglobit@gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 4326 bytes --]
Oups,
this has already been merged, please ignore.
Sorry for the noise this creates! I somehow messed up my patch queue.
/Joachim
On Thu, 2026-09-17 at 18:05 +0200, Joachim Wiberg wrote:
> 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
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2026-09-17 16:12 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 ` [Buildroot] [PATCH v2 2/2] package/lldpd: rework start script Joachim Wiberg
2026-09-17 16:12 ` Joachim Wiberg [this message]
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=827779cbc5d27660618d1389c6dca48eae00e9d1.camel@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.