#!/command/with-contenv bashio # shellcheck shell=bash # ============================================================================== # Home Assistant Community Add-on: Example # ============================================================================== declare exit_code readonly exit_code_container=$(</run/s6-linux-init-container-results/exitcode) readonly exit_code_service="${1}" readonly exit_code_signal="${2}" readonly service="actrunner" bashio::log.info \ "Service ${service} exited with code ${exit_code_service}" \ "(by signal ${exit_code_signal})" # Received a signal if [[ "${exit_code_service}" -eq 256 ]]; then # The signal might be a result of another service crashing. Only # overwrite the container exit code if it is not already set. if [[ "${exit_code_container}" -eq 0 ]]; then echo $((128 + $exit_code_signal)) > /run/s6-linux-init-container-results/exitcode fi # If the signal is SIGTERM, we should halt the container and take down # the whole process tree. [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt # The service exited with a non-zero exit code, which means it crashed. elif [[ "${exit_code_service}" -ne 0 ]]; then # The service might be a result of another service crashing. Only # overwrite the container exit code if it is not already set. if [[ "${exit_code_container}" -eq 0 ]]; then echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode fi # We should halt the container and take down the whole process tree. exec /run/s6/basedir/bin/halt # The service exited with a zero exit code, which means it exited, let # S6 supervision restart it. else bashio::log.info "Service ${service} restarting..." fi