package/docker-engine: rewrite dockerd init script

This brings the dockerd init script in line with the standard
Buildroot init script pattern.

Reload using SIGHUP is also supported now, note that the Docker
documentation cautions that not all parameters can be changed at
runtime (without a full restart).

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Fiona Klute (WIWA)
2024-07-31 20:13:33 +02:00
committed by Thomas Petazzoni
parent fcfdfb276d
commit ef5947774f
2 changed files with 57 additions and 28 deletions

View File

@@ -439,7 +439,6 @@ package/dmalloc/0004-Makefile-use-the-configure-detected-or-user-supplied.patch
package/dmalloc/0005-configure-use-LD-instead-of-hard-coding-ld.patch lib_patch.Upstream
package/dmraid/0001-fix-compilation-under-musl.patch lib_patch.Upstream
package/dmraid/S20dmraid lib_sysv.Variables
package/docker-engine/S60dockerd Shellcheck lib_sysv.Indent lib_sysv.Variables
package/docopt-cpp/0001-only-build-one-target-use-BUILD_SHARED_LIBS-where-appropriate.patch lib_patch.Upstream
package/domoticz/S99domoticz Shellcheck
package/dovecot/0001-auth-Fix-handling-passdbs-with-identical-driver-args.patch lib_patch.Upstream

View File

@@ -1,38 +1,68 @@
#!/bin/sh
NAME=dockerd
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid
DAEMON_ARGS=""
DAEMON="dockerd"
PIDFILE="/var/run/$DAEMON.pid"
[ -r /etc/default/$NAME ] && . /etc/default/$NAME $1
DOCKERD_ARGS=""
do_start() {
echo -n "Starting $NAME: "
start-stop-daemon --start --quiet --background --make-pidfile \
--pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS \
&& echo "OK" || echo "FAIL"
# shellcheck source=/dev/null
[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON"
start() {
printf 'Starting %s: ' "$DAEMON"
# shellcheck disable=SC2086 # we need word splitting for DOCKERD_ARGS
start-stop-daemon --start --background --pidfile "$PIDFILE" \
--exec "/usr/bin/$DAEMON" \
-- --pidfile "$PIDFILE" $DOCKERD_ARGS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
do_stop() {
echo -n "Stopping $NAME: "
start-stop-daemon --stop --quiet --pidfile $PIDFILE \
&& echo "OK" || echo "FAIL"
stop() {
printf 'Stopping %s: ' "$DAEMON"
start-stop-daemon --stop --pidfile "$PIDFILE" --exec "/usr/bin/$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/bin/$DAEMON"; do
sleep 0.1
done
rm -f "$PIDFILE"
return "$status"
}
restart() {
stop
start
}
reload() {
printf "Reloading %s config: " "$DAEMON"
start-stop-daemon --stop --signal HUP -q --pidfile "$PIDFILE" \
--exec "/usr/bin/$DAEMON"
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart)
do_stop
sleep 1
do_start
;;
start|stop|restart|reload)
"$1";;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac