Symptome und Geltungsbereich
- Der Start endet mit STATE_DIRECTORY oder RUNTIME_DIRECTORY.
- Der vorgesehene Verzeichnispfad kollidiert mit einer Datei oder ungeeigneten Verknüpfung.
Betroffene Umgebung
systemd-Units mit StateDirectory oder RuntimeDirectory, einschließlich DynamicUser-Verzeichnisstruktur.
Erkennbare Meldungen (synthetische Beispiele)
systemd[1]: example.service: Main process exited, code=exited, status=238/STATE_DIRECTORYPrüfe genanntes Verzeichnis und vorhergehenden Dateisystemfehler.
systemd[1]: example.service: Main process exited, code=exited, status=233/RUNTIME_DIRECTORYPrüfe /run-Kontext und Platz vor der Annahme beschädigter dauerhafter Daten.
Mögliche Ursachen
Das sind mögliche Erklärungen, keine bestätigte Diagnose. Mehrere unabhängige Fehler können gleichzeitig vorliegen.
- Eine Pfadkollision, fehlerhafte Eigentümerzuordnung oder schreibgeschützter Speicher kann den Aufbau blockieren.
- Erschöpfter Platz oder Inode-Vorrat kann die Erstellung verhindern; /run kann unabhängig von /var/lib voll sein.
Sicher prüfen
Führe jeweils einen Befehl in der passenden Sitzung aus. Lies zuerst die Erklärung. Großgeschriebene Platzhalter brauchen deine Werte; Werkzeuge und Rechte unterscheiden sich je nach Distribution. Die Website zeigt Befehle an und führt sie niemals aus.
Prüfschritt 1
Ersetze die Unit; prüfe Vorgaben vor Annahmen zu Pfadeigentümern.
systemctl show example.service -p StateDirectory -p RuntimeDirectory -p User -p DynamicUserErgebnis einordnen: StateDirectory enthält dauerhafte Daten, RuntimeDirectory Laufzeitdaten. DynamicUser kann privaten Speicher mit Kompatibilitäts-Symlinks nutzen.
Prüfschritt 2
Ersetze den Pfad durch den betroffenen verwalteten Journalpfad; nur Metadaten.
namei -l /var/lib/exampleErgebnis einordnen: Eine Datei am Verzeichnispfad unterscheidet sich von einem legitimen DynamicUser-Symlink. Prüfe Ziele vor Verschiebungen.
Prüfschritt 3
Liest Platz üblicher Daten- und Laufzeitdateisysteme; passe Pfade für andere Roots an.
df -h /var/lib /runErgebnis einordnen: Ein volles /run-tmpfs kann trotz Platz auf dauerhaftem Speicher blockieren. Prüfe bei Allokationsfehlern trotz Platz auch freie Inodes.
Nächste Schritte nach Befund
Bestätigte Pfadkollision auflösen
Wenn eine fremde Datei den Verzeichnispfad belegt, stoppe den Dienst und sichere sie vor der vorgesehenen Verzeichnisbereitstellung. Erhalte bestehende Daten und die dokumentierte private Struktur.
Vorsicht: Lösche keine Dienstdaten und ändere Eigentümer nicht rekursiv ohne Prüfung von Inhalt und DynamicUser-Verhalten.
Wiederherstellung / Rücknahme: Stoppe den Dienst, stelle gesicherten Pfad und frühere Unit zurück und verbinde vor dem Start die ursprünglichen Daten.
Hat dir dieser Hinweis geholfen?
Gezielte Speicherbeschränkung beheben
Wenn Platz oder Schreibschutz den Fehler verursacht, stelle auf diesem Dateisystem nutzbaren Platz her oder verschiebe Daten nach dem unterstützten Verfahren. Reduziere den ermittelten Laufzeitverbraucher bei vollem /run.
Vorsicht: Datenumzüge können Stopp und Sicherungen erfordern. RuntimeDirectory-Inhalte verschwinden beim Stopp normalerweise, sofern kein Erhalt konfiguriert ist.
Wiederherstellung / Rücknahme: Stelle alte Verzeichniseinstellungen und Sicherungen bei gestoppter Anwendung zurück; vermische keine auseinanderentwickelten Live-Daten.
Hat dir dieser Hinweis geholfen?
Quellen und Prüfung
Diese Anleitung basiert auf Originalquellen von Projekten oder Distributionen und wurde am genannten Datum redaktionell geprüft. Das ist eine Quellenprüfung, kein Nachweis einer auf deiner Hardware reproduzierten Lösung. Log-Beispiele sind synthetische Testdaten. Versionsabhängige Details müssen zur installierten Ausgabe passen.
- systemd.exec — upstream manual hosted by Debian (Projekt- oder Distributionsdokumentation)
- systemd.service — upstream manual hosted by Debian (Projekt- oder Distributionsdokumentation)