diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/go2rtc b/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/go2rtc new file mode 100644 index 000000000..e69de29bb diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/finish b/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/finish new file mode 100755 index 000000000..14f63ae83 --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/finish @@ -0,0 +1,28 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +# Take down the S6 supervision tree when the service exits + +set -o errexit -o nounset -o pipefail + +declare exit_code_container +exit_code_container=$(cat /run/s6-linux-init-container-results/exitcode) +readonly exit_code_container +readonly exit_code_service="${1}" +readonly exit_code_signal="${2}" +readonly service="Frigate" + +echo "Service ${service} exited with code ${exit_code_service} (by signal ${exit_code_signal})" >&2 + +if [[ "${exit_code_service}" -eq 256 ]]; then + if [[ "${exit_code_container}" -eq 0 ]]; then + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode + fi + if [[ "${exit_code_signal}" -eq 15 ]]; then + exec /run/s6/basedir/bin/halt + fi +elif [[ "${exit_code_service}" -ne 0 ]]; then + if [[ "${exit_code_container}" -eq 0 ]]; then + echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode + fi + exec /run/s6/basedir/bin/halt +fi diff --git a/docker/rootfs/etc/services.d/frigate/log/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/log/run similarity index 100% rename from docker/rootfs/etc/services.d/frigate/log/run rename to docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/log/run diff --git a/docker/rootfs/etc/services.d/frigate/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/run similarity index 100% rename from docker/rootfs/etc/services.d/frigate/run rename to docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/type b/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/type new file mode 100644 index 000000000..5883cff0c --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/type @@ -0,0 +1 @@ +longrun diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/dependencies.d/init-logs b/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/dependencies.d/init-logs new file mode 100644 index 000000000..e69de29bb diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/finish b/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/finish new file mode 100755 index 000000000..2e95e74fc --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/finish @@ -0,0 +1,28 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +# Take down the S6 supervision tree when the service exits + +set -o errexit -o nounset -o pipefail + +declare exit_code_container +exit_code_container=$(cat /run/s6-linux-init-container-results/exitcode) +readonly exit_code_container +readonly exit_code_service="${1}" +readonly exit_code_signal="${2}" +readonly service="go2rtc" + +echo "Service ${service} exited with code ${exit_code_service} (by signal ${exit_code_signal})" >&2 + +if [[ "${exit_code_service}" -eq 256 ]]; then + if [[ "${exit_code_container}" -eq 0 ]]; then + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode + fi + if [[ "${exit_code_signal}" -eq 15 ]]; then + exec /run/s6/basedir/bin/halt + fi +elif [[ "${exit_code_service}" -ne 0 ]]; then + if [[ "${exit_code_container}" -eq 0 ]]; then + echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode + fi + exec /run/s6/basedir/bin/halt +fi diff --git a/docker/rootfs/etc/services.d/go2rtc/log/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/log/run similarity index 100% rename from docker/rootfs/etc/services.d/go2rtc/log/run rename to docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/log/run diff --git a/docker/rootfs/etc/services.d/go2rtc/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run similarity index 100% rename from docker/rootfs/etc/services.d/go2rtc/run rename to docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type b/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type new file mode 100644 index 000000000..5883cff0c --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type @@ -0,0 +1 @@ +longrun diff --git a/docker/rootfs/etc/cont-init.d/prepare-logs.sh b/docker/rootfs/etc/s6-overlay/s6-rc.d/init-logs/run similarity index 100% rename from docker/rootfs/etc/cont-init.d/prepare-logs.sh rename to docker/rootfs/etc/s6-overlay/s6-rc.d/init-logs/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/init-logs/type b/docker/rootfs/etc/s6-overlay/s6-rc.d/init-logs/type new file mode 100644 index 000000000..bdd22a185 --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/init-logs/type @@ -0,0 +1 @@ +oneshot diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/init-logs/up b/docker/rootfs/etc/s6-overlay/s6-rc.d/init-logs/up new file mode 100644 index 000000000..f0a9d251f --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/init-logs/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-logs/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/frigate b/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/frigate new file mode 100644 index 000000000..e69de29bb diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish b/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish new file mode 100755 index 000000000..285928af0 --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish @@ -0,0 +1,28 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +# Take down the S6 supervision tree when the service exits + +set -o errexit -o nounset -o pipefail + +declare exit_code_container +exit_code_container=$(cat /run/s6-linux-init-container-results/exitcode) +readonly exit_code_container +readonly exit_code_service="${1}" +readonly exit_code_signal="${2}" +readonly service="NGINX" + +echo "Service ${service} exited with code ${exit_code_service} (by signal ${exit_code_signal})" >&2 + +if [[ "${exit_code_service}" -eq 256 ]]; then + if [[ "${exit_code_container}" -eq 0 ]]; then + echo $((128 + exit_code_signal)) > /run/s6-linux-init-container-results/exitcode + fi + if [[ "${exit_code_signal}" -eq 15 ]]; then + exec /run/s6/basedir/bin/halt + fi +elif [[ "${exit_code_service}" -ne 0 ]]; then + if [[ "${exit_code_container}" -eq 0 ]]; then + echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode + fi + exec /run/s6/basedir/bin/halt +fi diff --git a/docker/rootfs/etc/services.d/nginx/log/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/log/run similarity index 100% rename from docker/rootfs/etc/services.d/nginx/log/run rename to docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/log/run diff --git a/docker/rootfs/etc/services.d/nginx/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/run similarity index 100% rename from docker/rootfs/etc/services.d/nginx/run rename to docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/run diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/type b/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/type new file mode 100644 index 000000000..5883cff0c --- /dev/null +++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/type @@ -0,0 +1 @@ +longrun diff --git a/docker/rootfs/etc/services.d/frigate/finish b/docker/rootfs/etc/services.d/frigate/finish deleted file mode 100755 index e219ed8b4..000000000 --- a/docker/rootfs/etc/services.d/frigate/finish +++ /dev/null @@ -1,16 +0,0 @@ -#!/command/with-contenv bash -# shellcheck shell=bash -# Take down the S6 supervision tree when the service exits - -set -o errexit -o nounset -o pipefail - -# Prepare exit code -if [[ "${1}" -eq 256 ]]; then - exit_code="$((128 + ${2}))" -else - exit_code="${1}" -fi - -# Make the container exit with the same exit code as the service -echo "${exit_code}" > /run/s6-linux-init-container-results/exitcode -exec /run/s6/basedir/bin/halt diff --git a/docker/rootfs/etc/services.d/go2rtc/finish b/docker/rootfs/etc/services.d/go2rtc/finish deleted file mode 100755 index c1b77fccc..000000000 --- a/docker/rootfs/etc/services.d/go2rtc/finish +++ /dev/null @@ -1,8 +0,0 @@ -#!/command/with-contenv bash -# shellcheck shell=bash -# Take down the S6 supervision tree when the service fails, or restart it -# otherwise - -if [[ "${1}" -ne 0 && "${1}" -ne 256 ]]; then - exec /run/s6/basedir/bin/halt -fi diff --git a/docker/rootfs/etc/services.d/nginx/finish b/docker/rootfs/etc/services.d/nginx/finish deleted file mode 100755 index c1b77fccc..000000000 --- a/docker/rootfs/etc/services.d/nginx/finish +++ /dev/null @@ -1,8 +0,0 @@ -#!/command/with-contenv bash -# shellcheck shell=bash -# Take down the S6 supervision tree when the service fails, or restart it -# otherwise - -if [[ "${1}" -ne 0 && "${1}" -ne 256 ]]; then - exec /run/s6/basedir/bin/halt -fi