F FabGPT-FAQ

systemd: una unit è failed (o riparte all'infinito). Come si debugga?

Strumenti e app 2 min lettura Runbook verificato

La coppia che risolve l'80% dei casi:

BASH
systemctl status nome.service   # stato, ultimo exit code, ultime righe
journalctl -xeu nome.service    # il log completo della unit, spiegato

Leggi il motivo vero: exit code, Main PID exited, permessi, file mancanti, porta occupata. Il loop activating (auto-restart) è la unit con Restart=always che muore e riparte all'infinito: fermala con systemctl stop, debugga da ferma, e se serve respiro c'è systemctl reset-failed (azzera il contatore di StartLimit). Se il servizio parte a mano ma non da systemd, il sospetto è l'ambiente: PATH ridotto, working directory, variabili che nel tuo shell ci sono e nella unit no – si dichiarano nella unit (Environment=, WorkingDirectory=). Per lo script tuo da far partire al boot: una unit minima con [Install] WantedBy=multi-user.target e systemctl enable --nowle basi dei servizi systemd coprono il resto, e ricorda che restart riavvia il processo mentre reload gli chiede solo di rileggere la config: il secondo non butta giù niente.

Hai una domanda specifica su questo tema?

Interroga direttamente il motore FabGPT-FAQ con risposta in tempo reale.