Symptome und Geltungsbereich
- Der Dienst meldet status=200/CHDIR.
- Das erwartete Verzeichnis erscheint erst nach einem Mount- oder Deployment-Schritt.
Betroffene Umgebung
systemd-Units mit WorkingDirectory, optionalem RootDirectory oder eigenen Anwendungs-Mounts.
Erkennbare Meldungen (synthetische Beispiele)
systemd[1]: example.service: Main process exited, code=exited, status=200/CHDIRDer Fehler liegt vor dem Anwendungsstart; prüfe Pfadsichtbarkeit und Zugriff.
Mögliche Ursachen
Das sind mögliche Erklärungen, keine bestätigte Diagnose. Mehrere unabhängige Fehler können gleichzeitig vorliegen.
- WorkingDirectory kann auf ein entferntes Verzeichnis oder den falschen Pfad im Dienst-Root verweisen.
- Nicht verfügbarer Speicher oder verweigerter Verzeichniszugriff kann chdir vor dem Start verhindern.
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 den Unit-Namen; die Abfrage liest wirksame Einstellungen.
systemctl show example.service -p WorkingDirectory -p RootDirectory -p RequiresMountsForErgebnis einordnen: WorkingDirectory ergänzt passende Mount-Abhängigkeiten, erstellt aber kein Verzeichnis. Vergleiche den Wert mit RootDirectory.
Prüfschritt 2
Ersetze den Pfad durch das konfigurierte Host-Verzeichnis; es werden keine Dateien verändert.
namei -l /srv/example/currentErgebnis einordnen: Ein fehlendes Symlink-Ziel oder unzugänglicher Elternpfad erklärt den Fehler. Sichtbarkeit auf dem Host beweist keine Sichtbarkeit im Dienst-Root.
Nächste Schritte nach Befund
Verzeichnis an das Deployment anpassen
Wenn das Deployment umgezogen ist, setze WorkingDirectory auf den tatsächlichen Pfad im Dienst-Root. Braucht die Anwendung kein festes Arbeitsverzeichnis, ersetze relative Daten- und Konfigurationspfade gezielt.
Vorsicht: Ohne diese Vorgabe können andere relative Dateien gelesen werden. Bewahre früheren Deployment-Symlink und Unit auf.
Wiederherstellung / Rücknahme: Stelle WorkingDirectory und Symlink zurück, lade die Unit neu und starte sie bei verfügbarem Pfad.
Hat dir dieser Hinweis geholfen?
Das vorgesehene Verzeichnis bereitstellen
Wenn der Pfad Dienstdaten enthält, stelle ihn mit StateDirectory oder der Distributionskonfiguration und passendem Eigentümer bereit. Liegen die Daten auf einem eigenen Mount, behebe dessen Fehler.
Vorsicht: Ein leeres Ersatzverzeichnis kann einen zweiten Datenbestand erzeugen. Prüfe vor dem Start die erwartete Mount-Quelle.
Wiederherstellung / Rücknahme: Nimm die Bereitstellung zurück, sichere neue Daten getrennt und verbinde den ursprünglichen Mount vor dem Neustart.
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.unit — upstream manual hosted by Debian (Projekt- oder Distributionsdokumentation)