Een service die op failed staat, heeft geen onmiddellijke herstart nodig. Op een server kan deze gewoonte soms de foutmelding wissen die de storing uitlegt of een programma opnieuw starten met een nog steeds ongeldige configuratie.
Begin met het identificeren van de betrokken eenheid, lees de status en het logboek, en corrigeer vervolgens de oorzaak. De herstart komt later.

Lijst de eenheden die daadwerkelijk falen
Deze opdracht toont de services en eenheden die systemd als defect beschouwt:
systemctl --failed
Noteer de volledige naam, bijvoorbeeld nginx.service of mijn-toepassing.service. Een eenheid exited is niet per se defect: sommige services voeren een korte taak uit en stoppen vervolgens normaal. De status failed geeft aan dat een opstart, controle-opdracht of een gecontroleerd proces met een fout is beëindigd.
Om de actieve, gestopte services en hun status te bekijken, raadpleeg ook de lijst van services met systemctl.
Lees de status van de service voordat je opnieuw opstart
Vervang nginx door uw eenheid. De optie --no-pager drukt de output rechtstreeks in de terminal af, wat voorkomt dat je in less blijft zitten tijdens een SSH-sessie.
sudo systemctl status nginx --no-pager
Kijk vooral naar de regel Active:, de exitcode en de laatste weergegeven regels. Een reeds bezette poort, een ontbrekend pad, een onleesbaar certificaat of een verkeerd gespelde richtlijn verschijnen vaak hier. Als de service een binaire uitvoert die zijn eigen validator heeft, start die validator dan eerst op. Voor Nginx bijvoorbeeld:
sudo nginx -t
Voer deze opdracht niet uit op een machine die geen Nginx gebruikt. Elke service heeft zijn eigen verificatiesyntaxis.
Ga naar de foutmelding met journalctl
systemctl status toont slechts een fragment. Het logboek van de eenheid geeft de volledige context:
sudo journalctl -u nginx -b --no-pager
sudo journalctl -u nginx -n 50 --no-pager
-b beperkt de zoektocht tot de huidige opstart. -n 50 behoudt de laatste 50 regels als de fout ouder is. Om een herstart live te volgen, gebruik sudo journalctl -fu nginx in een tweede SSH-sessie. De gids journalctl en de berichten van de laatste opstart helpt bij het uitbreiden van de diagnose wanneer de fout meerdere services raakt.
Corrigeer, start opnieuw op en controleer
Na een wijziging in het eenheidsbestand of een drop-in systemd, herlaad de configuratie. Deze stap herstart de service niet.
sudo systemctl daemon-reload
sudo systemctl restart nginx
systemctl is-active nginx
systemctl --failed
is-active moet active antwoorden. Als de service op een poort luistert, controleer dan ook de poort en doe een test vanuit de juiste client. Een active antwoord garandeert niet dat een webtoepassing, proxy of database al verzoeken accepteert.
Bij een kritieke service, houd een tweede SSH-sessie open vóór een herstart en kopieer de exacte fout in uw ticket of notities. U voorkomt dat u dezelfde diagnose bij het volgende incident opnieuw moet uitvoeren.