Startseite > Paket- & Systemverwaltung > systemd

systemd: System- und Diensteverwalter

systemd ist der am weitesten verbreitete System- und Diensteverwalter in modernen Linux-Systemen. Es ersetzt traditionelle Init-Systeme und bietet eine integrierte Verwaltung für verschiedene Kernfunktionen wie Systemstart, Diensteverwaltung, Gerätesteuerung und Protokollverwaltung.

Übersicht

systemd spielt eine zentrale Rolle bei der effizienten Verwaltung des Systemstartvorgangs, der Überwachung laufender Dienste und der Steuerung verschiedener Systemzustände. Im Gegensatz zur sequenziellen Ausführung von Skripten durch Init-Systeme verarbeitet systemd Dienste parallel basierend auf Abhängigkeiten, was die Startgeschwindigkeit erheblich verbessert. Dies ist ein wichtiger Faktor, der zur Leistung und Stabilität moderner Linux-Systeme beitählt.

Hauptmerkmale

Die Hauptmerkmale von systemd sind:

  • Paralleler Start: Verkürzt die Startzeit, indem mehrere Dienste gleichzeitig ausgeführt werden, nachdem Dienstabhängigkeiten analysiert wurden.
  • Integrierte Verwaltung: Verwaltet verschiedene Elemente wie Systemstart, Dienste, Geräte und Protokolle in einem einzigen Framework.
  • Dienstüberwachung: Hilft bei einem stabilen Betrieb, indem Dienste bei Fehlern automatisch neu gestartet werden.
  • Ersetzt Runlevel: Führt das Konzept der 'Targets' anstelle von Runlevels zur Steuerung des Systemzustands ein.

Beziehung zu Init

systemd ist der Nachfolger und Ersatz des traditionellen Init-Systems. Es übernimmt die Rolle des Systemstarts und -herunterfahrens, die von Init ausgeführt wurde, und fügt verbesserte Funktionen hinzu.

  • Init: Der erste ausgeführte Prozess, der beim Booten die Datei `/etc/inittab` referenzierte und Skripte sequenziell basierend auf Runlevels ausführte.
  • systemd: Ebenfalls der PID 1-Prozess, verwendet jedoch 'Targets' anstelle von Runlevels und verarbeitet Dienste parallel basierend auf Abhängigkeiten, was ihn schneller und flexibler macht.
  • Kompatibilität: In den meisten modernen Linux-Systemen ist Init ein symbolischer Link zu systemd, sodass systemd die Init-Befehle ausführt.

Kernkonzepte

Dies sind die Kernkonzepte, die für das Verständnis von systemd unerlässlich sind.

Unit

Alle von systemd verwalteten Objekte (Dienste, Mountpunkte, Geräte usw.) werden als 'Units' definiert. Jede Unit hat eine Konfigurationsdatei (`*.service`, `*.mount` usw.), die eine bestimmte Aufgabe definiert.

  • Service Unit: Verwaltet Hintergrundprozesse wie Webserver (nginx.service) oder Datenbanken (mysql.service).
  • Target Unit: Dient der Gruppierung mehrerer Units. Ein Konzept, das Runlevels ersetzt; 'multi-user.target' bedeutet den Mehrbenutzermodus, 'graphical.target' den grafischen Modus.
  • Mount Unit: Verwaltet Dateisystem-Mountpunkte.

systemctl

Das primäre Befehlszeilendienstprogramm zur Steuerung von systemd. Es wird zum Starten, Stoppen, Neustarten von Diensten oder zum Überprüfen des Unit-Status verwendet.

  • Dienst starten: sudo systemctl start nginx
  • Dienststatus prüfen: sudo systemctl status nginx
  • System neu starten: sudo systemctl reboot

journalctl

Ein Befehl zum Abfragen von Systemprotokollen, die von systemd zentral verwaltet werden. Protokolle können nach Dienst, Zeit oder Priorität gefiltert werden.

  • Alle Protokolle anzeigen: journalctl
  • Protokolle eines bestimmten Dienstes anzeigen: journalctl -u nginx.service
  • Echtzeit-Protokolle anzeigen: journalctl -f

Anwendungsbeispiele

Anwendungsbeispiele für die Kernbefehle systemctl und journalctl von systemd.

System-Boot-Target überprüfen

systemctl get-default

Überprüft, mit welchem Target das System gestartet wurde.

System herunterfahren

sudo systemctl poweroff

Fährt das System sicher über systemd herunter. Führt die gleiche Funktion wie der Befehl poweroff aus.

Bestimmten Dienst aktivieren/deaktivieren

sudo systemctl enable nginx
sudo systemctl disable nginx

Stellt ein, dass ein bestimmter Dienst beim Systemstart automatisch gestartet wird, oder deaktiviert ihn.

Dienst neu starten

sudo systemctl restart nginx

Startet den laufenden Webserver-Dienst neu. Nützlich, wenn Konfigurationsdateien geändert wurden.

Tipps & Hinweise

Nützliche Hinweise zur Verwendung von systemd.

Tipps

  • systemd-Unit-Dateien befinden sich hauptsächlich in den Verzeichnissen `/etc/systemd/system/` oder `/lib/systemd/system/`.
  • systemd verwaltet die meisten Start-/Herunterfahrbefehle integriert. Daher sind `halt`, `reboot`, `poweroff` oft symbolische Links zu `systemctl`.
  • Mit dem Befehl `systemctl status` können Sie nicht nur den Status eines Dienstes, sondern auch die neuesten Protokolle auf einmal überprüfen.

Verwandte Befehle

Funktional ähnliche oder häufig zusammen verwendete Befehle.


Gleiche Kategorie Befehle