From 88b0dd74720110bcac9189b92a92349f95e970ad Mon Sep 17 00:00:00 2001 From: marco370 <48531002-marco370@users.noreply.replit.com> Date: Mon, 16 Feb 2026 18:25:43 +0000 Subject: [PATCH] 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 --- deployment/check_backend.sh | 39 ++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 14 deletions(-) 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