diff --git a/Watchdogs/docker_watchdog.sh b/Watchdogs/docker_watchdog.sh index 3e7b11c..a364b57 100755 --- a/Watchdogs/docker_watchdog.sh +++ b/Watchdogs/docker_watchdog.sh @@ -570,9 +570,11 @@ check_docker_daemon() { fi # Restart daemon — unRAID uses rc.d scripts, not systemd + # timeout 180: rc.docker stops all containers before restarting — without a limit this + # can block for 30+ min on a busy host, holding the orchestrator lock the entire time. WATCHDOG_DAEMON_RESTARTED=true set_strikes "daemon_restarted_flag" "true" "$WATCHDOG_STATE_FILE" - if /etc/rc.d/rc.docker restart >/dev/null 2>&1; then + if timeout 180 /etc/rc.d/rc.docker restart >/dev/null 2>&1; then log "Docker daemon restart issued — waiting ${WATCHDOG_DAEMON_RESTART_WAIT}s..." sleep "$WATCHDOG_DAEMON_RESTART_WAIT"