diff --git a/.checkpackageignore b/.checkpackageignore index 203cfb4a2c..3580d49430 100644 --- a/.checkpackageignore +++ b/.checkpackageignore @@ -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 diff --git a/package/docker-engine/S60dockerd b/package/docker-engine/S60dockerd index def8bea149..aab50d84d4 100644 --- a/package/docker-engine/S60dockerd +++ b/package/docker-engine/S60dockerd @@ -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