So sieht die Meldung aus
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details.Häufige Ursachen
- Syntaxfehler in der Konfiguration des Dienstes, z. B. nach einer Änderung an nginx oder Postfix.
- Port bereits belegt („Address already in use“).
- Fehlende Datei: Zertifikat, Schlüssel, Socket-Verzeichnis oder Include.
- Fehlende Rechte oder SELinux/AppArmor verhindert den Zugriff.
- Fehlerhafte Unit oder Override, z. B. falscher Pfad in
ExecStart.
Prüfen
- Status mit den letzten Logzeilen anzeigen
systemctl status nginx.service --no-pager -l - Ausführliche Journal-Einträge des Dienstes anzeigen
journalctl -xeu nginx.service --no-pager | tail -n 40 - Konfiguration testen (Beispiel nginx; für Apache
apachectl configtest, Postfixpostfix check)nginx -t - Unit inklusive aller Overrides anzeigen
systemctl cat nginx.service
Lösung
- Die erste echte Fehlermeldung im Journal lesen, nicht nur die systemd-Zusammenfassung.
- Konfigurationsfehler beheben und vor dem Neustart immer den Konfigtest des Dienstes ausführen.
- Bei belegtem Port den Prozess mit
ss -ltnpfinden und beenden oder umkonfigurieren. - Nach Änderungen an Units
systemctl daemon-reloadausführen. - Fehlerzustand zurücksetzen und neu starten:
systemctl reset-failed nginx && systemctl start nginx.
Häufige Fragen
Was bedeutet „control process“?
Das ist der Prozess, den systemd zum Starten, Stoppen oder Neuladen ausführt, also ExecStart, ExecStartPre oder ExecReload. Sein Exit-Code war nicht 0.
Warum zeigt systemctl status keine Ursache?
Status zeigt nur die letzten Zeilen. Mit journalctl -xeu name.service sehen Sie den vollständigen Verlauf, oft steht der Fehler einige Zeilen weiter oben.