<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.xinux.net/index.php?action=history&amp;feed=atom&amp;title=Systemd_Baustein_Fehlersuche</id>
	<title>Systemd Baustein Fehlersuche - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.xinux.net/index.php?action=history&amp;feed=atom&amp;title=Systemd_Baustein_Fehlersuche"/>
	<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Systemd_Baustein_Fehlersuche&amp;action=history"/>
	<updated>2026-10-21T13:46:10Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://www.xinux.net/index.php?title=Systemd_Baustein_Fehlersuche&amp;diff=73780&amp;oldid=prev</id>
		<title>Thomas.will: Neue Seite: Baustein Fehlersuche und Analyse</title>
		<link rel="alternate" type="text/html" href="https://www.xinux.net/index.php?title=Systemd_Baustein_Fehlersuche&amp;diff=73780&amp;oldid=prev"/>
		<updated>2026-10-17T15:47:32Z</updated>

		<summary type="html">&lt;p&gt;Neue Seite: Baustein Fehlersuche und Analyse&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Kategorie:systemd]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Baustein !! ab Stufe !! Lernpfad&lt;br /&gt;
|-&lt;br /&gt;
| '''Fehlersuche und Analyse''' || [[Systemd Stufe 1 Basic|Stufe 1]] bis [[Systemd Stufe 3 Security|Stufe 3]] || [[Systemd Lernpfad|Übersicht]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Einfach erklärt=&lt;br /&gt;
*Fast jeder Fehler mit systemd lässt sich mit drei Befehlen eingrenzen: '''systemctl status''', '''journalctl''' und '''systemd-analyze'''.&lt;br /&gt;
*Startet das ganze System nicht mehr, gibt es Notfallwege: Rettungsmodus, Notfallmodus, eine Debug-Shell.&lt;br /&gt;
*Stürzt ein Programm ab, kann systemd den Speicherabzug (Coredump) aufheben, damit man später nachsehen kann, warum.&lt;br /&gt;
&lt;br /&gt;
=Ein Dienst startet nicht=&lt;br /&gt;
*Immer in dieser Reihenfolge:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl status dienst&lt;br /&gt;
journalctl -u dienst -e&lt;br /&gt;
journalctl -xeu dienst&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*'''-x''' ergänzt Erklärungen zu bekannten Meldungen.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Meldung in status !! Bedeutung !! Abhilfe&lt;br /&gt;
|-&lt;br /&gt;
| status=203/EXEC || Programm nicht gefunden oder nicht ausführbar || Pfad in ExecStart= prüfen, chmod +x&lt;br /&gt;
|-&lt;br /&gt;
| status=200/CHDIR || WorkingDirectory= gibt es nicht oder kein Zugriff || Verzeichnis und Rechte prüfen&lt;br /&gt;
|-&lt;br /&gt;
| status=217/USER || User= gibt es nicht || Benutzer anlegen oder DynamicUser=yes&lt;br /&gt;
|-&lt;br /&gt;
| code=killed, signal=SYS || ein verbotener Systemaufruf || SystemCallFilter= lockern, siehe [[Systemd Stufe 3 Security|Stufe 3]]&lt;br /&gt;
|-&lt;br /&gt;
| Start request repeated too quickly || zu oft neu gestartet || Ursache beheben, dann systemctl reset-failed dienst&lt;br /&gt;
|-&lt;br /&gt;
| changed on disk || Unit geändert, aber nicht neu geladen || systemctl daemon-reload&lt;br /&gt;
|}&lt;br /&gt;
*Alles, was gescheitert ist: '''systemctl --failed'''&lt;br /&gt;
&lt;br /&gt;
=Unit-Dateien prüfen=&lt;br /&gt;
*systemd-analyze verify /etc/systemd/system/dienst.service&lt;br /&gt;
*Findet Tippfehler, unbekannte Optionen und fehlende Programme, bevor man startet.&lt;br /&gt;
*systemctl cat dienst zeigt, was systemd wirklich liest, mit allen Drop-ins.&lt;br /&gt;
&lt;br /&gt;
=Der Start ist langsam=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Wirkung&lt;br /&gt;
|-&lt;br /&gt;
| systemd-analyze || Zeit für Firmware, Bootloader, Kernel und Userspace&lt;br /&gt;
|-&lt;br /&gt;
| systemd-analyze blame || alle Units nach Startdauer sortiert&lt;br /&gt;
|-&lt;br /&gt;
| systemd-analyze critical-chain || die Kette, die den Start wirklich aufhält&lt;br /&gt;
|-&lt;br /&gt;
| systemd-analyze plot &amp;amp;gt; start.svg || Zeitstrahl als Bild für den Browser&lt;br /&gt;
|}&lt;br /&gt;
*'''blame''' allein täuscht: Ein Dienst, der lange braucht, aber parallel läuft, bremst niemanden. Entscheidend ist '''critical-chain'''.&lt;br /&gt;
*Mehr dazu als Animation: [https://labs.xinux.net/systemd-start.html#4-1 Der Zeitstrahl]&lt;br /&gt;
&lt;br /&gt;
=Das System startet nicht mehr=&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Bootparameter im GRUB-Editor !! Wirkung&lt;br /&gt;
|-&lt;br /&gt;
| systemd.unit=rescue.target || Rettungsmodus: Dateisysteme eingehängt, keine Dienste&lt;br /&gt;
|-&lt;br /&gt;
| systemd.unit=emergency.target || Notfallmodus: nur / nur lesbar&lt;br /&gt;
|-&lt;br /&gt;
| systemd.debug_shell || zusätzlich eine root-Shell auf tty9 (Strg+Alt+F9), ohne Passwort&lt;br /&gt;
|-&lt;br /&gt;
| systemd.log_level=debug || systemd meldet jeden Schritt ins Journal&lt;br /&gt;
|-&lt;br /&gt;
| init=/bin/bash || ganz ohne systemd, siehe [https://labs.xinux.net/kernel-initialisierung.html#10-1 Kernel-Initialisierung]&lt;br /&gt;
|}&lt;br /&gt;
*Die Debug-Shell nach der Fehlersuche wieder abschalten. Sie ist eine offene root-Shell.&lt;br /&gt;
*Nach dem Start mit Problemen: '''journalctl -b -1 -p err''' zeigt die Fehler vom letzten, gescheiterten Start.&lt;br /&gt;
&lt;br /&gt;
=Abstürze: coredumpctl=&lt;br /&gt;
*Debian bringt es nicht von Haus aus mit: '''apt install systemd-coredump'''&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Befehl !! Wirkung&lt;br /&gt;
|-&lt;br /&gt;
| coredumpctl list || alle gespeicherten Abstürze&lt;br /&gt;
|-&lt;br /&gt;
| coredumpctl info PID || Programm, Signal, Zeitpunkt, Stack&lt;br /&gt;
|-&lt;br /&gt;
| coredumpctl debug PID || den Absturz direkt im Debugger gdb öffnen&lt;br /&gt;
|}&lt;br /&gt;
*Die Abzüge liegen unter /var/lib/systemd/coredump/.&lt;br /&gt;
*Für die Sicherheit: Ein Coredump enthält den Speicher des Programms, also eventuell Passwörter und Schlüssel. Zugriff nur für root.&lt;br /&gt;
&lt;br /&gt;
=Stolperfallen=&lt;br /&gt;
*'''Nur status gelesen:''' status zeigt nur die letzten Zeilen. Der eigentliche Fehler steht oft weiter oben in journalctl -u.&lt;br /&gt;
*'''reset-failed vergessen:''' Nach Start request repeated too quickly startet systemd den Dienst nicht mehr, bis man reset-failed macht.&lt;br /&gt;
*'''Debug-Shell vergessen:''' systemd.debug_shell nur für die Fehlersuche, danach entfernen.&lt;br /&gt;
&lt;br /&gt;
=Aufgaben=&lt;br /&gt;
==Grundaufgaben==&lt;br /&gt;
#Bauen Sie absichtlich drei kaputte Units: falscher Pfad, falscher Benutzer, falsches Verzeichnis. Welche Meldungen bekommen Sie?&lt;br /&gt;
#Prüfen Sie die drei Units mit systemd-analyze verify.&lt;br /&gt;
#Welcher Dienst bremst den Start Ihres Systems?&lt;br /&gt;
#Booten Sie einmal in den Rettungsmodus und wieder normal.&lt;br /&gt;
==Für Schnelle==&lt;br /&gt;
#Lassen Sie einen Dienst mit Restart=always sofort scheitern, bis systemd aufgibt. Starten Sie ihn danach wieder.&lt;br /&gt;
#Installieren Sie systemd-coredump, lassen Sie ein Programm mit kill -SEGV abstürzen und sehen Sie es mit coredumpctl an.&lt;br /&gt;
#Starten Sie mit systemd.debug_shell und finden Sie die Shell auf tty9.&lt;br /&gt;
&lt;br /&gt;
=Weiter=&lt;br /&gt;
*[[Systemd Lernpfad|Übersicht: Lernpfad systemd]]&lt;br /&gt;
*Alte Seite: [[Systemd-analyze-beschreibung]]&lt;/div&gt;</summary>
		<author><name>Thomas.will</name></author>
	</entry>
</feed>