Überarbeitet am 8. September 2026.
Der Fehler ist kurz, aber ziemlich eindeutig:
Failed to restart nginx.service: Unit nginx.service is masked.
Genau darüber bin ich selbst einmal gestolpert. Die Lösung bestand zwar tatsächlich aus systemctl unmask nginx, aber heute würde ich vorher einen Schritt mehr machen: herausfinden, warum Nginx überhaupt maskiert wurde.
Was bedeutet „masked“?
Bei systemd ist maskiert nicht dasselbe wie deaktiviert. Ein deaktivierter Dienst kann weiterhin manuell gestartet werden. Eine maskierte Unit dagegen wird so blockiert, dass sie überhaupt nicht gestartet werden kann.
Systemd verwendet dafür normalerweise einen Link der Unit auf /dev/null. Das ist eine bewusst stärkere Sperre als ein normales disable.
1. Status von Nginx prüfen
systemctl status nginx.service
systemctl is-enabled nginx.service
Wenn is-enabled als Ergebnis masked liefert, ist die Ursache für diese konkrete Fehlermeldung gefunden.
2. Kurz überlegen, warum Nginx gesperrt wurde
Bevor ich die Sperre entferne, prüfe ich, ob sie absichtlich gesetzt wurde. Typische Gründe können ein früherer Webserver-Umbau, ein Konflikt mit Apache oder eine alte Verwaltungssoftware sein.
Wenn beispielsweise bereits Apache auf Port 80 und 443 lauscht und Nginx ohne Reverse-Proxy-Konfiguration ebenfalls diese Ports beansprucht, löst das Entmaskieren nur das nächste Problem aus.
3. Nginx-Konfiguration testen
Bevor Nginx wieder gestartet wird, teste ich seine Konfiguration:
sudo nginx -t
Erst wenn dort keine Syntaxfehler auftauchen, geht es weiter.
4. Nginx entmaskieren
sudo systemctl unmask nginx.service
unmask hebt die systemd-Sperre wieder auf. Danach kann die Unit normal gestartet beziehungsweise aktiviert werden.
5. Nginx aktivieren und starten
sudo systemctl enable --now nginx.service
Danach noch einmal prüfen:
systemctl status nginx.service
Nginx startet danach trotzdem nicht
Dann war die Maskierung nur das erste Problem. Die eigentliche Fehlermeldung steht normalerweise im systemd-Journal:
journalctl -u nginx.service -n 100 --no-pager
Häufige Ursachen sind anschließend eine fehlerhafte Nginx-Konfiguration, bereits belegte Ports, fehlende Zertifikatsdateien oder falsche Pfade.
Kurzfassung
systemctl is-enabled nginx.service
sudo nginx -t
sudo systemctl unmask nginx.service
sudo systemctl enable --now nginx.service
systemctl status nginx.service
Der entscheidende Punkt bleibt also derselbe wie in meiner ursprünglichen Anleitung: systemctl unmask nginx.service. Heute würde ich diesen Befehl nur nicht mehr ohne vorherige Prüfung ausführen.
Mehr Hintergrund zu mask und unmask gibt es in der systemd-Dokumentation zu systemctl.
Gedanken dazu 0 Kommentare
Noch ist es ruhig hier. Dein Gedanke könnte der erste sein.
Was denkst du dazu?
Dein Kommentar erscheint nach der Freigabe.