mirror of
https://github.com/home-assistant/supervisor.git
synced 2026-04-17 23:33:35 +01:00
Write core state to /run/supervisor & monitor (#2027)
* Write core state to /run/supervisor & monitor * Add watchdog * Add log if they getting started * fix stale comment * Fix script * avoid output * fix tests * fix lint * Update rootfs/etc/services.d/watchdog/run Co-authored-by: Franck Nijhof <git@frenck.dev> Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/with-contenv bashio
|
||||
# ==============================================================================
|
||||
# Start Service service
|
||||
# Start Supervisor service
|
||||
# ==============================================================================
|
||||
export LD_PRELOAD="/usr/local/lib/libjemalloc.so.2"
|
||||
|
||||
exec python3 -m supervisor
|
||||
exec python3 -m supervisor
|
||||
|
||||
8
rootfs/etc/services.d/watchdog/finish
Normal file
8
rootfs/etc/services.d/watchdog/finish
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/usr/bin/execlineb -S1
|
||||
# ==============================================================================
|
||||
# Take down the S6 supervision tree when Watchdog fails
|
||||
# ==============================================================================
|
||||
if { s6-test ${1} -ne 0 }
|
||||
if { s6-test ${1} -ne 256 }
|
||||
|
||||
s6-svscanctl -t /var/run/s6/services
|
||||
34
rootfs/etc/services.d/watchdog/run
Normal file
34
rootfs/etc/services.d/watchdog/run
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/with-contenv bashio
|
||||
# ==============================================================================
|
||||
# Start Watchdog service
|
||||
# ==============================================================================
|
||||
declare failed_count=0
|
||||
declare supervisor_state
|
||||
|
||||
bashio::log.info "Start local supervisor watchdog..."
|
||||
|
||||
while [[ failed_count -lt 2 ]];
|
||||
do
|
||||
sleep 300
|
||||
supervisor_state="$(cat /run/supervisor)"
|
||||
|
||||
if [[ "${supervisor_state}" = "running" ]]; then
|
||||
|
||||
# Check API
|
||||
if bashio::supervisor.ping; then
|
||||
failed_count=0
|
||||
else
|
||||
bashio::log.warning "Maybe found an issue on API healthy"
|
||||
((failed_count++))
|
||||
fi
|
||||
|
||||
elif [[ "close stopping" = *"${supervisor_state}"* ]]; then
|
||||
bashio::log.warning "Maybe found an issue on shutdown"
|
||||
((failed_count++))
|
||||
else
|
||||
failed_count=0
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
basio::exit.nok "Watchdog detect issue with Supervisor - take container down!"
|
||||
Reference in New Issue
Block a user