46 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#!/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="example2"
 | 
						|
 | 
						|
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
 |