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
systemdselbst (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
- Prüfe, ob
systemdbei dir Prozess Nr. 1 ist:ps -p 1 -o comm=
- Sieh dir die laufenden Units an:
systemctl list-units --type=service
- 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
systemctlkannst 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
