Systemd

Mittwoch 31. Juli 2019 von Torsten

In diesem Artikel werden die Grundlagen von “Systemd“ beschrieben.

Systemd und Abhängigkeiten:

Während System-V-Init und Upstart explizite Abhängigkeiten von Diensten untereinander ausnutzen – Dienste zum Beispiel, die den Systemprotokolldienst benutzen, können erst gestartet werden, wenn der Systemprotokolldienst läuft –, dreht systemd die Abhängigkeiten um: Ein Dienst, der den Systemprotokolldienst voraussetzt, tut das ja nicht, weil der Protokolldienst laufen muss, sondern weil

er selbst Protokollnachrichten loswerden möchte. Dazu muss er auf den Kommunikationskanal zugreifen, über den der Systemprotokolldienst erreicht werden kann. Es reicht also völlig aus, wenn systemd selbst diesen Kommunikationskanal anlegt und ihn an den Systemprotokolldienst weiterreicht, sobald dieser tatsächlich zur Verfügung steht.

Der Dienst, der protokollieren möchte, wartet, bis seine Nachrichten tatsächlich angenommen werden können. Systemd kann also im Wesentlichen erst alle Kommunikationskanäle erzeugen und dann alle Dienste ohne Rücksicht auf Abhängigkeiten gleichzeitig starten. Die Abhängigkeiten regeln sich – ganz ohne explizite Regeln in der Konfiguration – von selbst.

Units und Ziele:

Systemd verwendet “Units“ als Abstraktion für zu verwaltende Systemaspekte wie Dienste, Kommunikationskanäle oder Geräte. Sogenannte Ziele (targets) treten an die Stelle der Runlevel von SysV-Init und dienen zur Zusammenfassung verschiedener Units.

Ziele (targets) sind für systemd im Großen und Ganzen das, was für System-V-Init die Runlevels sind: Die Möglichkeit, eine Menge von Diensten bequem zu beschreiben. Während System-V-Init nur eine relativ kleine Anzahl von Runlevels erlaubt und ihre Konfiguration ziemlich kompliziert ist, ermöglicht systemd die problemlose Definition diverser Ziele.

Unit-Dateien:

Einer der gravierenden Vorteile von systemd ist, dass er ein einheitliches Dateiformat für alle Konfigurationsdateien verwendet – egal, ob es um zu startende Dienste, Geräte, Kommunikationskanäle, Dateisysteme oder andere von systemd verwaltete Artefakte geht.

Praxisbeispiele fürs Terminal – Teil 1:

  • systemctl
  • systemctl list-unit-files

Zugegeben so wirklich praxisnah sind diese Beispiele auch noch nicht. Der Init-Prozess macht spannende Experimente deshalb so schwer, weil im Normalfall diese Dinge beim Start des Linuxsystems von alleine ablaufen. Warum sollte ich also als Administrator hier Eingriffe vornehmen?

Analyse des Systems:

“Systemd“ besitzt mehrere Hilfsprogramme zur Analyse des Systems….

  • sudo systemd-analyze blame

Gibt eine Liste aller laufenden Units von systemd aus, sortiert nach der Zeit, die diese für die Initialisierung benötigt haben.

  • sudo systemd-analyze time

Zeigt an, wie lange das System benötigt hat, bis der Userspace vollständig geladen und initialisiert war.

Quellen:

  • LPI-101_02-Datei von Tuxcademy
  • https://wiki.ubuntuusers.de/systemd/

Dieser Beitrag wurde erstellt am Mittwoch 31. Juli 2019 um 08:00 und abgelegt unter Allgemein. Kommentare zu diesen Eintrag im RSS 2.0 Feed. Sie können zum Ende springen und ein Kommentar hinterlassen. Pings sind im Augenblick nicht erlaubt.

Kommentar schreiben