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
|
# Schema-Änderungen am Index nötig: manuell mit
|
||||||
# archivmail reindex --config /etc/archivmail/config.yml
|
# archivmail reindex --config /etc/archivmail/config.yml
|
||||||
|
|
||||||
sleep 2
|
|
||||||
BACKEND_OK=0
|
BACKEND_OK=0
|
||||||
FRONTEND_OK=0
|
FRONTEND_OK=0
|
||||||
|
|
||||||
systemctl is-active --quiet archivmail && BACKEND_OK=1 || true
|
# Health-Check statt nur systemd-Status: Backend muss tatsächlich auf
|
||||||
systemctl is-active --quiet archivmail-web && FRONTEND_OK=1 || true
|
# 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 ""
|
||||||
echo " ┌──────────────────────────────────────┐"
|
echo " ┌──────────────────────────────────────┐"
|
||||||
|
|||||||
Reference in New Issue
Block a user