From 4326b86f1562fab38f5927f097208b97880678df Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Tue, 17 Jan 2023 11:34:01 -0300 Subject: [PATCH] Refator s6 scripts to the new format --- .../s6-rc.d/frigate/dependencies.d/go2rtc | 0 .../etc/s6-overlay/s6-rc.d/frigate/finish | 28 +++++++++++++++++++ .../s6-rc.d}/frigate/log/run | 0 .../s6-rc.d}/frigate/run | 0 .../etc/s6-overlay/s6-rc.d/frigate/type | 1 + .../s6-rc.d/go2rtc/dependencies.d/init-logs | 0 .../etc/s6-overlay/s6-rc.d/go2rtc/finish | 28 +++++++++++++++++++ .../s6-rc.d}/go2rtc/log/run | 0 .../s6-rc.d}/go2rtc/run | 0 .../rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type | 1 + .../s6-rc.d/init-logs/run} | 0 .../etc/s6-overlay/s6-rc.d/init-logs/type | 1 + .../etc/s6-overlay/s6-rc.d/init-logs/up | 1 + .../s6-rc.d/nginx/dependencies.d/frigate | 0 .../etc/s6-overlay/s6-rc.d/nginx/finish | 28 +++++++++++++++++++ .../s6-rc.d}/nginx/log/run | 0 .../s6-rc.d}/nginx/run | 0 .../rootfs/etc/s6-overlay/s6-rc.d/nginx/type | 1 + docker/rootfs/etc/services.d/frigate/finish | 16 ----------- docker/rootfs/etc/services.d/go2rtc/finish | 8 ------ docker/rootfs/etc/services.d/nginx/finish | 8 ------ 21 files changed, 89 insertions(+), 32 deletions(-) create mode 100644 docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/dependencies.d/go2rtc create mode 100755 docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/finish rename docker/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/frigate/log/run (100%) rename docker/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/frigate/run (100%) create mode 100644 docker/rootfs/etc/s6-overlay/s6-rc.d/frigate/type create mode 100644 docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/dependencies.d/init-logs create mode 100755 docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/finish rename docker/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/go2rtc/log/run (100%) rename docker/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/go2rtc/run (100%) create mode 100644 docker/rootfs/etc/s6-overlay/s6-rc.d/go2rtc/type rename docker/rootfs/etc/{cont-init.d/prepare-logs.sh => s6-overlay/s6-rc.d/init-logs/run} (100%) create mode 100644 docker/rootfs/etc/s6-overlay/s6-rc.d/init-logs/type create mode 100644 docker/rootfs/etc/s6-overlay/s6-rc.d/init-logs/up create mode 100644 docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/frigate create mode 100755 docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish rename docker/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/nginx/log/run (100%) rename docker/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/nginx/run (100%) create mode 100644 docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/type delete mode 100755 docker/rootfs/etc/services.d/frigate/finish delete mode 100755 docker/rootfs/etc/services.d/go2rtc/finish delete mode 100755 docker/rootfs/etc/services.d/nginx/finish 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