Bevor wir direkt mit Befehlen arbeiten, ist es wichtig zu verstehen, was systemd eigentlich macht und warum es so zentral für moderne Linux-Systeme ist. Dieses Kapitel gibt dir das notwendige Hintergrundwissen, um systemd besser einordnen zu können – und bereitet dich darauf vor, ab dem nächsten Kapitel praktisch damit zu arbeiten.

🔹 Was ist systemd?

  • systemd ist das Init-System moderner Linux-Distributionen.
  • Es ist dafür zuständig, Prozesse und Dienste beim Start des Systems zu laden und im Betrieb zu überwachen.
  • Der Name steht für „system daemon“.
Früher gab es andere Init-Systeme:
  • SysVinit → klassisch, aber eingeschränkt.
  • Upstart → moderner, wurde aber von systemd abgelöst.
Heute gilt: Fast jede größere Distribution setzt standardmäßig auf systemd.

🔹 Hauptaufgaben von systemd

1. Systemstart (Bootprozess)
  • systemd ist der erste Prozess nach dem Kernel.
  • Es startet alle wichtigen Dienste in der richtigen Reihenfolge.
2. Dienstverwaltung (Service Management)
  • Dienste starten, stoppen, neu laden.
  • Dienste automatisch neu starten, falls sie abstürzen.
3. Protokollierung (Logging)
  • Mit journalctl kannst du alle Logs durchsuchen.
  • Einheitliche Verwaltung statt verstreuter Logdateien.
4. Ressourcenverwaltung
  • Begrenzung von CPU, RAM oder Netzwerk für bestimmte Dienste.
5. Timer und Automatisierung
  • systemd kann zeitgesteuerte Aufgaben übernehmen (ähnlich wie Cron, aber flexibler).
👉 Damit ist systemd viel mehr als nur ein Startsystem – es ist ein Komplettwerkzeug für die Verwaltung eines Linux-Systems.

🔹 Units – die Bausteine von systemd

systemd arbeitet mit sogenannten Units. Eine Unit ist eine Konfigurationsdatei, die beschreibt, was systemd starten oder überwachen soll.Die wichtigsten Typen:
  • Service-Units → starten Dienste (z. B. nginx.service)
  • Target-Units → bündeln andere Units, ähnlich wie Runlevels (graphical.target)
  • Timer-Units → starten Jobs nach Zeitplan (backup.timer)
  • Mount-Units → für Dateisysteme und Netzwerk-Mounts
Beispiel:/lib/systemd/system/ssh.service → steuert den SSH-Server/etc/systemd/system/backup.service → könnte ein eigener Backup-Dienst sein👉 Alles, was systemd macht, basiert auf Units.

🔹 Prozesse und Abhängigkeiten

systemd verwaltet Prozesse in einer Baumstruktur.
  • Der erste Prozess ist systemd selbst (PID 1).
  • Alle anderen Prozesse hängen direkt oder indirekt daran.
Vorteil: systemd erkennt Abhängigkeiten. Beispiel:
  • Ein Webserver (apache2.service) hängt vom Netzwerk (network.target) ab.
  • systemd startet automatisch zuerst das Netzwerk, dann den Webserver.

🔹 Status von systemd prüfen

Ob systemd läuft, kannst du ganz einfach überprüfen:
ps -p 1 -o comm=
Ausgabe:
systemd
👉 Damit siehst du: systemd ist tatsächlich Prozess Nr. 1 und damit das Init-System deines Linux-Systems.

🔹 Übung

  1.  Prüfe, ob systemd bei dir Prozess Nr. 1 ist:
    ps -p 1 -o comm=
  2. Sieh dir die laufenden Units an:
    systemctl list-units --type=service
  3. Finde heraus, ob dein SSH- oder Netzwerkdienst aktiv ist:
    systemctl status ssh
    oder
    systemctl status NetworkManager

✅ Zusammenfassung

  • systemd ist das Init-System moderner Linux-Distributionen.
  • Es startet und überwacht Dienste, schreibt Logs und verwaltet Ressourcen.
  • Die Arbeit von systemd basiert auf Units (Service, Target, Timer, Mount, …).
  • Mit systemctl kannst du Units überwachen und steuern – damit starten wir im nächsten Kapitel.
👉 Im nächsten Kapitel lernst du die wichtigsten Befehle kennen, um Dienste mit systemctl zu steuern.

📚 Inhaltsverzeichnis

👉 systemd Kapitel 1: Grundlagen – Was ist systemd und wie arbeitet es? 👉 systemd Kapitel 2: Dienste steuern mit systemctl 👉 systemd Kapitel 3: Logs und Fehlersuche mit journalctl 👉 systemd Kapitel 4: Bootprozess & Targets verstehen 👉 systemd Kapitel 5: Eigene Services erstellen 👉 systemd Kapitel 6: Timer als moderne Cron-Alternative 👉 systemd Kapitel 7: Abschlussprojekt – Eigene Services & Timer kombinieren