From 93692f36386ba6c579ba1a7828922a546bf96068 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Fri, 16 Dec 2022 13:07:18 +0100 Subject: [PATCH] :hammer: Migrate old-style S6 scripts to s6-rc.d (#269) --- .../s6-rc.d/init-nginx/dependencies.d/base | 0 .../s6-rc.d/init-nginx/run} | 1 + .../etc/s6-overlay/s6-rc.d/init-nginx/type | 1 + .../etc/s6-overlay/s6-rc.d/init-nginx/up | 1 + .../init-tasmoadmin/dependencies.d/base | 0 .../s6-rc.d/init-tasmoadmin/run} | 1 + .../s6-overlay/s6-rc.d/init-tasmoadmin/type | 1 + .../etc/s6-overlay/s6-rc.d/init-tasmoadmin/up | 1 + .../s6-rc.d/nginx/dependencies.d/init-nginx | 0 .../s6-rc.d/nginx/dependencies.d/php-fpm | 0 .../etc/s6-overlay/s6-rc.d/nginx/finish | 26 ++++++++++++++++++ .../s6-rc.d}/nginx/run | 2 ++ .../rootfs/etc/s6-overlay/s6-rc.d/nginx/type | 1 + .../php-fpm/dependencies.d/init-tasmoadmin | 0 .../etc/s6-overlay/s6-rc.d/php-fpm/finish | 27 +++++++++++++++++++ .../s6-rc.d}/php-fpm/run | 1 + .../etc/s6-overlay/s6-rc.d/php-fpm/type | 1 + .../s6-rc.d/user/contents.d/init-nginx | 0 .../s6-rc.d/user/contents.d/init-tasmoadmin | 0 .../s6-overlay/s6-rc.d/user/contents.d/nginx | 0 .../s6-rc.d/user/contents.d/php-fpm | 0 tasmoadmin/rootfs/etc/services.d/nginx/finish | 11 -------- .../rootfs/etc/services.d/php-fpm/finish | 11 -------- 23 files changed, 64 insertions(+), 22 deletions(-) create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/dependencies.d/base rename tasmoadmin/rootfs/etc/{cont-init.d/nginx.sh => s6-overlay/s6-rc.d/init-nginx/run} (96%) create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/dependencies.d/base rename tasmoadmin/rootfs/etc/{cont-init.d/tasmoadmin.sh => s6-overlay/s6-rc.d/init-tasmoadmin/run} (97%) create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/type create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/up create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/init-nginx create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/php-fpm create mode 100755 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish rename tasmoadmin/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/nginx/run (99%) create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/type create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/dependencies.d/init-tasmoadmin create mode 100755 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/finish rename tasmoadmin/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/php-fpm/run (93%) create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/type create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-nginx create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-tasmoadmin create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx create mode 100644 tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/php-fpm delete mode 100755 tasmoadmin/rootfs/etc/services.d/nginx/finish delete mode 100755 tasmoadmin/rootfs/etc/services.d/php-fpm/finish diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/dependencies.d/base b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/tasmoadmin/rootfs/etc/cont-init.d/nginx.sh b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run similarity index 96% rename from tasmoadmin/rootfs/etc/cont-init.d/nginx.sh rename to tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run index 6edc9b7..5d97d98 100755 --- a/tasmoadmin/rootfs/etc/cont-init.d/nginx.sh +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: TasmoAdmin # Configures NGINX for use with TasmoAdmin diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/type @@ -0,0 +1 @@ +oneshot diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up new file mode 100644 index 0000000..b3b5b49 --- /dev/null +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-nginx/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-nginx/run diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/dependencies.d/base b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/tasmoadmin/rootfs/etc/cont-init.d/tasmoadmin.sh b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/run similarity index 97% rename from tasmoadmin/rootfs/etc/cont-init.d/tasmoadmin.sh rename to tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/run index 27822d4..ba3d340 100755 --- a/tasmoadmin/rootfs/etc/cont-init.d/tasmoadmin.sh +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: TasmoAdmin # Configures TasmoAdmin diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/type b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/type @@ -0,0 +1 @@ +oneshot diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/up b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/up new file mode 100644 index 0000000..8f8368a --- /dev/null +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/init-tasmoadmin/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-tasmoadmin/run diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/init-nginx b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/init-nginx new file mode 100644 index 0000000..e69de29 diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/php-fpm b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/dependencies.d/php-fpm new file mode 100644 index 0000000..e69de29 diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish new file mode 100755 index 0000000..864e49e --- /dev/null +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/finish @@ -0,0 +1,26 @@ +#!/command/with-contenv bashio +# ============================================================================== +# Home Assistant Community Add-on: TasmoAdmin +# Take down the S6 supervision tree when NGINX fails +# ============================================================================== +declare exit_code +readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + fi + [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt +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/tasmoadmin/rootfs/etc/services.d/nginx/run b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/run similarity index 99% rename from tasmoadmin/rootfs/etc/services.d/nginx/run rename to tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/run index b79369c..bdf8baa 100755 --- a/tasmoadmin/rootfs/etc/services.d/nginx/run +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/run @@ -3,7 +3,9 @@ # Home Assistant Community Add-on: TasmoAdmin # Runs the Nginx daemon # ============================================================================== + # Wait for PHP-FPM to become available bashio::net.wait_for 9001 + bashio::log.info "Starting NGINX server..." exec nginx -g "daemon off;" diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/type b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/nginx/type @@ -0,0 +1 @@ +longrun diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/dependencies.d/init-tasmoadmin b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/dependencies.d/init-tasmoadmin new file mode 100644 index 0000000..e69de29 diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/finish b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/finish new file mode 100755 index 0000000..ca07784 --- /dev/null +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/finish @@ -0,0 +1,27 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: TasmoAdmin +# Take down the S6 supervision tree when PHP FPM fails +# ============================================================================== +declare exit_code +readonly exit_code_container=$( /run/s6-linux-init-container-results/exitcode + fi + [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt +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/tasmoadmin/rootfs/etc/services.d/php-fpm/run b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/run similarity index 93% rename from tasmoadmin/rootfs/etc/services.d/php-fpm/run rename to tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/run index 83bea0d..eb87a8d 100755 --- a/tasmoadmin/rootfs/etc/services.d/php-fpm/run +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/run @@ -1,4 +1,5 @@ #!/command/with-contenv bashio +# shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: TasmoAdmin # Runs the PHP-FPM daemon diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/type b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/php-fpm/type @@ -0,0 +1 @@ +longrun diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-nginx b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-nginx new file mode 100644 index 0000000..e69de29 diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-tasmoadmin b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-tasmoadmin new file mode 100644 index 0000000..e69de29 diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/nginx new file mode 100644 index 0000000..e69de29 diff --git a/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/php-fpm b/tasmoadmin/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/php-fpm new file mode 100644 index 0000000..e69de29 diff --git a/tasmoadmin/rootfs/etc/services.d/nginx/finish b/tasmoadmin/rootfs/etc/services.d/nginx/finish deleted file mode 100755 index 15fe15c..0000000 --- a/tasmoadmin/rootfs/etc/services.d/nginx/finish +++ /dev/null @@ -1,11 +0,0 @@ -#!/command/with-contenv bashio -# ============================================================================== -# Home Assistant Community Add-on: TasmoAdmin -# Take down the S6 supervision tree when NGINX fails -# ============================================================================== -if [[ "${1}" -ne 0 ]] && [[ "${1}" -ne 256 ]]; then - bashio::log.warning "NGINX crashed, halting add-on" - /run/s6/basedir/bin/halt -fi - -bashio::log.info "NGINX stopped, restarting..." diff --git a/tasmoadmin/rootfs/etc/services.d/php-fpm/finish b/tasmoadmin/rootfs/etc/services.d/php-fpm/finish deleted file mode 100755 index 336c659..0000000 --- a/tasmoadmin/rootfs/etc/services.d/php-fpm/finish +++ /dev/null @@ -1,11 +0,0 @@ -#!/command/with-contenv bashio -# ============================================================================== -# Home Assistant Community Add-on: TasmoAdmin -# Take down the S6 supervision tree when PHP FPM fails -# ============================================================================== -if [[ "${1}" -ne 0 ]] && [[ "${1}" -ne 256 ]]; then - bashio::log.warning "PHP-FPM crashed, halting add-on" - /run/s6/basedir/bin/halt -fi - -bashio::log.info "PHP-FPM stopped, restarting..."