From: Christian König Date: Tue, 18 Apr 2023 20:41:56 +0000 (+0200) Subject: Use s6-notifyoncheck to check for services startup readiness X-Git-Tag: 4.2.1d0~7^2 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F1665%2Fhead;p=thirdparty%2Fshairport-sync.git Use s6-notifyoncheck to check for services startup readiness Signed-off-by: Christian König --- diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/data/check b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/data/check new file mode 100755 index 00000000..39eeac11 --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/data/check @@ -0,0 +1,2 @@ +#!/bin/sh +exec dbus-send --system / org.freedesktop.DBus.Peer.Ping > /dev/null 2> /dev/null diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/notification-fd b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/notification-fd new file mode 100644 index 00000000..00750edc --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/notification-fd @@ -0,0 +1 @@ +3 diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/run b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/run index 2278697a..15018b7e 100644 --- a/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/run +++ b/docker/classic/etc/s6-overlay/s6-rc.d/02-dbus/run @@ -1,4 +1,3 @@ #!/command/with-contenv sh -rm -rf /var/run/dbus/dbus.pid echo "Starting dbus" -exec dbus-daemon --system --nofork +exec s6-notifyoncheck dbus-daemon --system --nofork --nopidfile diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/data/check b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/data/check new file mode 100755 index 00000000..ccb833b6 --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/data/check @@ -0,0 +1,10 @@ +#!/bin/sh +state="$(dbus-send --system --dest=org.freedesktop.Avahi --print-reply / org.freedesktop.Avahi.Server.GetState | grep int32 | awk '{printf $2}')" + +# Avahi will return 'state=2' when 'Server startup complete' +if [ "$state" = 2 ]; then + exit 0 +else + exit 1 +fi + diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/notification-fd b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/notification-fd new file mode 100644 index 00000000..00750edc --- /dev/null +++ b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/notification-fd @@ -0,0 +1 @@ +3 diff --git a/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run index e3ea2ff9..edb5e74b 100644 --- a/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run +++ b/docker/classic/etc/s6-overlay/s6-rc.d/03-avahi/run @@ -1,7 +1,3 @@ #!/command/with-contenv sh -while [ ! -f /var/run/dbus/dbus.pid ]; do - echo "s6-rc: warning: dbus is not running, sleeping for 1 second before trying to start avahi" - sleep 1 -done echo "Starting avahi" -exec avahi-daemon --no-chroot +exec s6-notifyoncheck avahi-daemon --no-chroot diff --git a/docker/etc/s6-overlay/s6-rc.d/02-dbus/data/check b/docker/etc/s6-overlay/s6-rc.d/02-dbus/data/check new file mode 100755 index 00000000..39eeac11 --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/02-dbus/data/check @@ -0,0 +1,2 @@ +#!/bin/sh +exec dbus-send --system / org.freedesktop.DBus.Peer.Ping > /dev/null 2> /dev/null diff --git a/docker/etc/s6-overlay/s6-rc.d/02-dbus/notification-fd b/docker/etc/s6-overlay/s6-rc.d/02-dbus/notification-fd new file mode 100644 index 00000000..00750edc --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/02-dbus/notification-fd @@ -0,0 +1 @@ +3 diff --git a/docker/etc/s6-overlay/s6-rc.d/02-dbus/run b/docker/etc/s6-overlay/s6-rc.d/02-dbus/run index 2278697a..15018b7e 100644 --- a/docker/etc/s6-overlay/s6-rc.d/02-dbus/run +++ b/docker/etc/s6-overlay/s6-rc.d/02-dbus/run @@ -1,4 +1,3 @@ #!/command/with-contenv sh -rm -rf /var/run/dbus/dbus.pid echo "Starting dbus" -exec dbus-daemon --system --nofork +exec s6-notifyoncheck dbus-daemon --system --nofork --nopidfile diff --git a/docker/etc/s6-overlay/s6-rc.d/03-avahi/data/check b/docker/etc/s6-overlay/s6-rc.d/03-avahi/data/check new file mode 100755 index 00000000..ccb833b6 --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/03-avahi/data/check @@ -0,0 +1,10 @@ +#!/bin/sh +state="$(dbus-send --system --dest=org.freedesktop.Avahi --print-reply / org.freedesktop.Avahi.Server.GetState | grep int32 | awk '{printf $2}')" + +# Avahi will return 'state=2' when 'Server startup complete' +if [ "$state" = 2 ]; then + exit 0 +else + exit 1 +fi + diff --git a/docker/etc/s6-overlay/s6-rc.d/03-avahi/notification-fd b/docker/etc/s6-overlay/s6-rc.d/03-avahi/notification-fd new file mode 100644 index 00000000..00750edc --- /dev/null +++ b/docker/etc/s6-overlay/s6-rc.d/03-avahi/notification-fd @@ -0,0 +1 @@ +3 diff --git a/docker/etc/s6-overlay/s6-rc.d/03-avahi/run b/docker/etc/s6-overlay/s6-rc.d/03-avahi/run index e3ea2ff9..edb5e74b 100644 --- a/docker/etc/s6-overlay/s6-rc.d/03-avahi/run +++ b/docker/etc/s6-overlay/s6-rc.d/03-avahi/run @@ -1,7 +1,3 @@ #!/command/with-contenv sh -while [ ! -f /var/run/dbus/dbus.pid ]; do - echo "s6-rc: warning: dbus is not running, sleeping for 1 second before trying to start avahi" - sleep 1 -done echo "Starting avahi" -exec avahi-daemon --no-chroot +exec s6-notifyoncheck avahi-daemon --no-chroot