From c53e4995c4cb25aba986bfe41b40a0a0a5bd27fc Mon Sep 17 00:00:00 2001 From: Chuck Date: Fri, 15 May 2026 15:14:50 -0400 Subject: [PATCH] fix(systemd): wait for network connectivity before starting services MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change After=network.target to After=network-online.target + Wants=network- online.target in both service templates and install_web_service.sh. network.target only means NetworkManager has started — it does NOT mean the device has an active internet connection. On boot, the LED matrix service was starting within seconds of the network interface appearing, before WiFi association and DHCP completed, causing all first-update API calls to fail with "Network is unreachable" or DNS resolution errors. network-online.target waits for a confirmed network route before the service starts. On Raspberry Pi OS this is provided by NetworkManager-wait-online. The tradeoff is a few extra seconds at boot, which is acceptable for a display device. Applied live to /etc/systemd/system/ledmatrix.service on devpi via systemctl daemon-reload (no restart required for the config change to take effect on next boot). Co-Authored-By: Claude Sonnet 4.6 --- scripts/install/install_web_service.sh | 3 ++- systemd/ledmatrix-web.service | 3 ++- systemd/ledmatrix.service | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/scripts/install/install_web_service.sh b/scripts/install/install_web_service.sh index 23575080..6df16d71 100644 --- a/scripts/install/install_web_service.sh +++ b/scripts/install/install_web_service.sh @@ -31,7 +31,8 @@ echo "Generating service file with dynamic paths..." WEB_SERVICE_FILE_CONTENT=$(cat <