Improve backend restart reliability for improved system stability

Update backend check script to handle user permissions for systemctl restarts and add fallback process checking.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 7a657272-55ba-4a79-9a2e-f1ed9bc7a528
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: e3c3b9b2-fba8-4fc9-b4fb-ac39615693a8
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/449cf7c4-c97a-45ae-8234-e5c5b8d6a84f/7a657272-55ba-4a79-9a2e-f1ed9bc7a528/4aeldgV
This commit is contained in:
marco370 2026-02-16 18:25:43 +00:00
parent b18e0a51e1
commit 88b0dd7472

View File

@ -2,6 +2,7 @@
# ========================================================= # =========================================================
# CHECK BACKEND - Verifica e riavvia backend Python se necessario # CHECK BACKEND - Verifica e riavvia backend Python se necessario
# Usa systemctl per gestire il servizio (con virtual environment) # Usa systemctl per gestire il servizio (con virtual environment)
# Nota: questo script può girare come root o come user ids
# ========================================================= # =========================================================
LOG_FILE="/var/log/ids/backend.log" LOG_FILE="/var/log/ids/backend.log"
@ -11,18 +12,28 @@ mkdir -p /var/log/ids
# Check if systemd service is active # Check if systemd service is active
if systemctl is-active --quiet ids-ml-backend; then if systemctl is-active --quiet ids-ml-backend; then
exit 0 exit 0
else fi
echo "[$(date)] Backend Python NON attivo, riavvio via systemctl..." >> "$LOG_FILE"
# Restart via systemctl (usa il venv configurato nel service) # Verifica anche se il processo Python è attivo (fallback)
if pgrep -f "python.*main.py" > /dev/null; then
exit 0
fi
echo "[$(date)] Backend Python NON attivo, riavvio..." >> "$LOG_FILE"
# Prova prima con systemctl (funziona se eseguito come root o con sudo configurato)
if [ "$(id -u)" -eq 0 ]; then
systemctl restart ids-ml-backend systemctl restart ids-ml-backend
else
# Se non siamo root, prova con sudo (richiede sudoers configurato)
sudo systemctl restart ids-ml-backend 2>/dev/null
fi
# Wait for startup # Wait for startup
sleep 3 sleep 5
if systemctl is-active --quiet ids-ml-backend; then if systemctl is-active --quiet ids-ml-backend || pgrep -f "python.*main.py" > /dev/null; then
echo "[$(date)] Backend riavviato con successo via systemctl" >> "$LOG_FILE" echo "[$(date)] Backend riavviato con successo" >> "$LOG_FILE"
else else
echo "[$(date)] ERRORE: Backend non si è avviato. Controlla: journalctl -u ids-ml-backend" >> "$LOG_FILE" echo "[$(date)] ERRORE: Backend non si è avviato. Controlla: journalctl -u ids-ml-backend" >> "$LOG_FILE"
fi fi
fi