2023-01-18 14:53:53 +01:00
|
|
|
#!/command/with-contenv bash
|
|
|
|
# shellcheck shell=bash
|
|
|
|
# Take down the S6 supervision tree when the service fails
|
|
|
|
|
|
|
|
set -o errexit -o nounset -o pipefail
|
|
|
|
|
2023-02-19 20:11:12 +01:00
|
|
|
# Logs should be sent to stdout so that s6 can collect them
|
|
|
|
|
2023-01-18 14:53:53 +01:00
|
|
|
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"
|
|
|
|
|
2023-02-19 20:11:12 +01:00
|
|
|
echo "[INFO] Service ${service} exited with code ${exit_code_service} (by signal ${exit_code_signal})"
|
2023-01-18 14:53:53 +01:00
|
|
|
|
|
|
|
if [[ "${exit_code_service}" -eq 256 ]]; then
|
|
|
|
if [[ "${exit_code_container}" -eq 0 ]]; then
|
2023-02-19 20:11:12 +01:00
|
|
|
echo $((128 + exit_code_signal)) >/run/s6-linux-init-container-results/exitcode
|
2023-01-18 14:53:53 +01:00
|
|
|
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
|
2023-02-19 20:11:12 +01:00
|
|
|
echo "${exit_code_service}" >/run/s6-linux-init-container-results/exitcode
|
2023-01-18 14:53:53 +01:00
|
|
|
fi
|
|
|
|
exec /run/s6/basedir/bin/halt
|
|
|
|
fi
|