diff --git a/deployment/check_backend.sh b/deployment/check_backend.sh index af6bdb1..88a6b75 100755 --- a/deployment/check_backend.sh +++ b/deployment/check_backend.sh @@ -2,6 +2,7 @@ # ========================================================= # CHECK BACKEND - Verifica e riavvia backend Python se necessario # 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" @@ -11,18 +12,28 @@ mkdir -p /var/log/ids # Check if systemd service is active if systemctl is-active --quiet ids-ml-backend; then exit 0 -else - echo "[$(date)] Backend Python NON attivo, riavvio via systemctl..." >> "$LOG_FILE" - - # Restart via systemctl (usa il venv configurato nel service) - systemctl restart ids-ml-backend - - # Wait for startup - sleep 3 - - if systemctl is-active --quiet ids-ml-backend; then - echo "[$(date)] Backend riavviato con successo via systemctl" >> "$LOG_FILE" - else - echo "[$(date)] ERRORE: Backend non si è avviato. Controlla: journalctl -u ids-ml-backend" >> "$LOG_FILE" - fi +fi + +# 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 +else + # Se non siamo root, prova con sudo (richiede sudoers configurato) + sudo systemctl restart ids-ml-backend 2>/dev/null +fi + +# Wait for startup +sleep 5 + +if systemctl is-active --quiet ids-ml-backend || pgrep -f "python.*main.py" > /dev/null; then + echo "[$(date)] Backend riavviato con successo" >> "$LOG_FILE" +else + echo "[$(date)] ERRORE: Backend non si è avviato. Controlla: journalctl -u ids-ml-backend" >> "$LOG_FILE" fi