systemctl startet den Dienst nicht: 'Unit is masked'. Die Unit ist auf /dev/null verlinkt. So machst du sie mit unmask wieder startbar.
Aufwand:
ca. 3 Min.
Voraussetzung:
sudo-Rechte, Terminal
Das Symptom
Du willst einen Dienst starten – sudo systemctl start <unit> – und systemd
verweigert mit der knappen Ansage: Unit <unit> is masked. Kein Start, kein
enable, nichts. Der Dienst existiert offensichtlich, tut aber so, als wäre er
mit einem Bann belegt.
Die „Layer 8“-Wahrheit
Genau das ist er: gebannt. Maskieren ist in systemd die härteste Stufe des
Deaktivierens – die Unit-Datei wird auf /dev/null verlinkt, und ein Link ins
Nichts lässt sich nun mal nicht starten. Anders als bei disable, das nur die
Auto-Start-Verknüpfungen kappt, blockiert mask jede Form der Aktivierung,
inklusive manuellem Start und Aktivierung über Abhängigkeiten. Der Ausweg ist
ein Zweizeiler: unmask, dann enable --now. Die eigentlich interessante Frage
ist aber die davor: Warum war die Unit maskiert? Das macht selten jemand aus
Versehen. Oft hat ein Paket oder ein Kollege sie bewusst stillgelegt, weil ein
anderer Dienst die Aufgabe übernommen hat. Bevor du den Bann aufhebst, kläre
kurz, wer ihn gesetzt hat – sonst reaktivierst du genau den Konflikt, den die
Maskierung verhindern sollte.
Die echte, verifizierte Lösung
1000 % faktenbasiert. Jeder Befehl ist real, jeder Pfad existiert. Schritt für Schritt:
1.
Status prüfen und Maskierung bestätigen
Zuerst nachsehen, ob die Unit wirklich maskiert ist. Der Status zeigt es direkt an, is-enabled gibt schlicht 'masked' zurück:
systemctl status <unit>
systemctl is-enabled <unit>
2.
Die Maskierung aufheben
Den Symlink auf /dev/null wieder entfernen. Danach ist die Unit nicht länger blockiert:
sudo systemctl unmask <unit>
3.
Dienst aktivieren und starten
Nach dem Demaskieren startet der Dienst nicht von allein. Aktivieren und sofort starten in einem Schritt:
sudo systemctl enable --now <unit>
4.
Ursache bedenken
Frag dich, warum die Unit maskiert war. Hat ein anderes Paket sie bewusst stillgelegt (etwa weil ein Ersatzdienst läuft), kann das Reaktivieren zu Konflikten führen. Im Zweifel den Grund klären, statt nur das Symptom zu beheben.
Häufige Fragen (FAQ)
?Was bedeutet 'masked' bei einer systemd-Unit?
Maskieren ist die stärkste Form des Deaktivierens. systemd verlinkt die Unit-Datei auf /dev/null, wodurch sich der Dienst weder manuell starten noch durch andere Units automatisch aktivieren lässt. Ein 'enable' oder 'start' scheitert deshalb konsequent mit dem Hinweis, die Unit sei maskiert – bis die Maskierung wieder aufgehoben ist.
?Worin unterscheidet sich mask von disable?
'disable' entfernt nur die automatischen Startverknüpfungen; der Dienst lässt sich weiterhin von Hand oder als Abhängigkeit starten. 'mask' hingegen blockiert jede Art der Aktivierung vollständig. mask ist also die Brechstange, disable der Schalter.
?Warum war die Unit überhaupt maskiert?
Meist steckt Absicht dahinter: ein Administrator, ein Konfigurations-Tool oder das Distributionspaket selbst hat die Unit maskiert, damit sie garantiert nicht anläuft – etwa weil ein anderer Dienst ihre Aufgabe übernimmt. Bevor du blind unmask ausführst, lohnt kurz die Frage, warum jemand das eingerichtet hat.
Belege
Diese Seite ist gegen die folgenden Primärquellen geprüft – Hersteller, Standard oder Gesetzestext. Wer es nicht glaubt, muss es nicht: Da steht, wo es nachzulesen ist.