chore: echten HTTP-Health-Check statt nur systemd-Status in update.sh
systemctl is-active zeigt nur, dass der Prozess läuft — nicht, dass er tatsächlich auf Anfragen antwortet (z.B. bei hängendem DB-Connect). Beide Dienste werden jetzt per HTTP gegen /api/health (Backend) bzw. Port 3000 (Frontend) mit Retry (15x1s) geprüft, bevor das Update als erfolgreich gemeldet wird.
This commit is contained in:
@@ -192,12 +192,28 @@ log "Dienste gestartet"
|
||||
# Schema-Änderungen am Index nötig: manuell mit
|
||||
# archivmail reindex --config /etc/archivmail/config.yml
|
||||
|
||||
sleep 2
|
||||
BACKEND_OK=0
|
||||
FRONTEND_OK=0
|
||||
|
||||
systemctl is-active --quiet archivmail && BACKEND_OK=1 || true
|
||||
systemctl is-active --quiet archivmail-web && FRONTEND_OK=1 || true
|
||||
# Health-Check statt nur systemd-Status: Backend muss tatsächlich auf
|
||||
# HTTP antworten (Prozess kann laufen, aber z.B. an DB-Connect hängen).
|
||||
info "Prüfe Backend-Health (/api/health)..."
|
||||
for i in $(seq 1 15); do
|
||||
if systemctl is-active --quiet archivmail && curl -fsS -o /dev/null --max-time 2 http://127.0.0.1:8080/api/health 2>/dev/null; then
|
||||
BACKEND_OK=1
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
info "Prüfe Frontend-Health (Port 3000)..."
|
||||
for i in $(seq 1 15); do
|
||||
if systemctl is-active --quiet archivmail-web && curl -fsS -o /dev/null --max-time 2 http://127.0.0.1:3000/ 2>/dev/null; then
|
||||
FRONTEND_OK=1
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo " ┌──────────────────────────────────────┐"
|
||||
|
||||
Reference in New Issue
Block a user