Symptome und Geltungsbereich
- Der Prozess meldet status=203/EXEC.
- Die normale Startmeldung der Anwendung fehlt.
Betroffene Umgebung
systemd-Systemdienste; Interpreter- und Programmpfade hängen von der Distribution ab.
Erkennbare Meldungen (synthetische Beispiele)
systemd[1]: example.service: Main process exited, code=exited, status=203/EXECPrüfe die Voraussetzungen für execve vor der Anwendung selbst.
Mögliche Ursachen
Das sind mögliche Erklärungen, keine bestätigte Diagnose. Mehrere unabhängige Fehler können gleichzeitig vorliegen.
- Ein veralteter ExecStart-Pfad, ein fehlender Interpreter oder ein ungeeignetes Binärformat kann execve verhindern.
- Dateizugriff, noexec-Mounts oder Dienst-Root können vom Terminalkontext abweichen.
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 example.service durch den betroffenen Dienst; normalerweise ohne erhöhte Rechte lesbar.
systemctl show example.service -p ExecStart -p RootDirectory -p UserErgebnis einordnen: Prüfe das tatsächliche Programm statt eines Shell-Alias. RootDirectory verändert die für den Prozess sichtbaren Pfade.
Prüfschritt 2
Ersetze den Pfad durch das Programm aus ExecStart; der Befehl liest nur Pfadmetadaten.
namei -l /opt/example/bin/serverErgebnis einordnen: Jedes Elternverzeichnis braucht Durchsuchungsrechte. Auch eine vorhandene Programmdatei benötigt ihren ELF-Loader oder Shebang-Interpreter.
Prüfschritt 3
Nutze dieselbe Unit; für das Systemjournal können administrative Leserechte erforderlich sein.
journalctl -b -u example.service --no-pager -n 60Ergebnis einordnen: Die Meldung vor 203/EXEC unterscheidet fehlende Dateien, verweigerten Zugriff und Formatfehler; 203 allein tut das nicht.
Nächste Schritte nach Befund
Programmpfad oder Interpreter korrigieren
Wenn der protokollierte Pfad fehlt, richte ExecStart auf das installierte Programm. Verwende im Shebang einen im Dienst-Root verfügbaren Interpreter. Unter NixOS hinterlege den Paketpfad deklarativ.
Vorsicht: Bewahre frühere Unit und Argumente auf. ExecStart wird nicht automatisch durch eine Shell ausgeführt.
Wiederherstellung / Rücknahme: Stelle die vorherige Unit wieder her, lade den Manager neu und starte nur diesen Dienst zu einem passenden Zeitpunkt.
Hat dir dieser Hinweis geholfen?
Benötigte Ausführungsrechte herstellen
Wenn Durchsuchungsrechte oder noexec den Fehler erklären, erteile dem Dienstkonto gezielte Pfadrechte oder verlagere das Programm auf ein geeignetes Dateisystem. Prüfe Sicherheitsrichtlinien gesondert.
Vorsicht: Notiere vorher Eigentümer und Rechte. Öffne Anwendungsdaten nicht pauschal und ändere keine unbeteiligten Mounts.
Wiederherstellung / Rücknahme: Stelle notierte Rechte oder ursprünglichen Programmpfad und Dienstdefinition wieder her.
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)