- WebSocket : reconnexion avec backoff exponentiel au lieu de reload page - Ecran pause avec tasse de cafe quand le backend est injoignable - Endpoint /api/health pour monitoring externe - Watchdog systemd (sd_notify READY=1 + WATCHDOG=1 toutes les 10s) - Service systemd durci (Type=notify, WatchdogSec=30, KillMode, limites) - WiFi watchdog : script + timer systemd, verifie la gateway toutes les 60s - Destinations : fallback url_tunnel (WireGuard) en priorite Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
29 lines
1.1 KiB
Bash
29 lines
1.1 KiB
Bash
#!/bin/bash
|
|
# Surveille la connexion WiFi et la rétablit si elle tombe.
|
|
# Conçu pour Surface Pro (wlan0) — lancé par cron ou systemd timer.
|
|
|
|
IFACE="wlan0"
|
|
GATEWAY=$(ip route show default dev "$IFACE" 2>/dev/null | awk '{print $3}' | head -1)
|
|
LOG_TAG="wifi-watchdog"
|
|
|
|
if [ -z "$GATEWAY" ]; then
|
|
logger -t "$LOG_TAG" "Pas de gateway sur $IFACE, tentative reconnexion..."
|
|
nmcli device connect "$IFACE" 2>&1 | logger -t "$LOG_TAG"
|
|
sleep 5
|
|
GATEWAY=$(ip route show default dev "$IFACE" 2>/dev/null | awk '{print $3}' | head -1)
|
|
fi
|
|
|
|
if [ -n "$GATEWAY" ]; then
|
|
if ! ping -c 2 -W 3 -I "$IFACE" "$GATEWAY" > /dev/null 2>&1; then
|
|
logger -t "$LOG_TAG" "Ping gateway $GATEWAY echoue, reconnexion WiFi..."
|
|
nmcli device disconnect "$IFACE" 2>&1 | logger -t "$LOG_TAG"
|
|
sleep 2
|
|
nmcli device connect "$IFACE" 2>&1 | logger -t "$LOG_TAG"
|
|
sleep 5
|
|
if ! ping -c 2 -W 3 -I "$IFACE" "$GATEWAY" > /dev/null 2>&1; then
|
|
logger -t "$LOG_TAG" "Toujours pas de connexion, restart NetworkManager..."
|
|
systemctl restart NetworkManager
|
|
fi
|
|
fi
|
|
fi
|