Eigenschaften von Systemd

Im Gegensatz zu Init startet Systemd die gewünschten Dienste parallel, was das Laden des Betriebssystems beschleunigt. Damit das gelingt, legt der Daemon Sockets an, über die die Dienste kommunizieren, und puffert die an die Programme gerichteten Daten so lange, bis diese erfolgreich starten. Stürzt ein Dienst ab, startet Systemd ihn neu. Die Zugriffe der Client-Anwendungen landen während dieser Phase wieder im Puffer; anschließend arbeitet der Daemon sie dann ab. Das Konzept erlaubt es, von Systemd angelegte Sockets zwischen Programmen zu verschieben.

Neuere Kernel stellen eine Funktion namens Cgroup [4] bereit, die es erlaubt, Prozesse mit ihren Kindprozessen in hierarchisch aufgebauten Gruppen zusammenzufassen. Systemd erstellt für jeden Dienst eine eigene Cgroup, die ihren Namen entsprechend dem Dienst erhält. Dieses Konzept beseitigt das Chaos, das in der Vergangenheit durch externe Prozesse entstand, die viele Dienste starten. Ferner vermeidet es, dass bei einem Absturz des Diensts einige dieser externen Prozesse weiterlaufen.

Es brauchen nicht alle Dienste beim Start des Systems loszulaufen, vielmehr geschieht dies bei Bedarf. Dazu überwacht Systemd die Aktivität auf einem Netzwerk- oder IPC-Socket oder einem FIFO-Puffer. Insofern übernimmt der Daemon hier teilweise die Funktionalität von Inetd. Darüber hinaus erlaubt es das Konzept der Software, viele Aufrufe ohne administrative Rechte vorzunehmen. Systemd verwaltet außerdem die Mountpoints, erstellt auf Wunsch Snapshots des Systems und stellt diese bei Bedarf wieder her. Diese Aggregation von Funktionen, die weit mehr als die hier stellvertretend genannten umfasst, brachte dem Ansatz erhebliche Kritik ein.

Die Runlevel existieren in Form von Zielen ("Targets") weiter. Meist geht aus den Namen der Dateien mit der Endung .target deren Zweck hervor. So regelt die Datei halt.target das Herunterfahren des Systems. Die Datei /etc/inittab spielt für Systemd keine Rolle mehr. Allerdings unterstützt der Daemon die traditionellen Skripte zum Verwalten der Dienste.

Je nach verwendeter Distribution unterscheiden sich die Äquivalente zwischen Runleveln und Targets. Die Tabelle "Runlevel vs. Targets" bietet eine Gegenüberstellung, die Angaben stammen von einer Installation mit Debian 8. Darüber hinaus gibt es weitere Targets, die es ermöglichen, die Zustände des Systems feiner zu unterteilen.

Runlevel vs. Targets

Runlevel Target Erläuterung
0 poweroff.target Rechner herunterfahren und abschalten
1 rescue.target Single-User-Modus ohne Netzwerk
2 multi-user.target Mehrbenutzermodus
3 bis 5
6 reboot.target Neustart des Rechners

Systemd konfigurieren

Die Anweisungen für die Konfiguration und zum Ausführen von Programmen liegen bei Systemd in Unit-Dateien. Die Endung der Dateien gibt einen Aufschluss darüber, welche Funktion eine Unit hat – eine Zusammenstellung dazu finden Sie in der Tabelle "Units". Die einzelnen Konfigurationsdateien liegen als Klartext vor und weisen einen ähnlichen Aufbau wie Ini-Dateien auf, was es ermöglicht, sie mit einem Texteditor zu bearbeiten.

Units

Endung Funktion
.automount konfiguriert einen Einhängepunkt zum automatischen Einhängen eines Datenträgers
.device verwaltet Geräte analog zu Udev
.mount definiert einen Einhängepunkt, durch den Fstab-Generator erzeugt und von Systemd verwaltet
.path startet weitere Dienste, wenn sich im angegebenen Pfad Objekte geändert haben
.scope automatisch erzeugte Dateien zum Verwalten von Systemprozessen
.service Informationen über einen Prozess
.slice dient dem Verwalten der Ressourcen von Prozessen
.snapshot erlaubt den Zustand des Systems vor dem Ändern während einer Sitzung wiederherzustellen
.socket beschreibt einen Netzwerk-, IPC-Socket oder FIFO-Puffer, den Systemd für das Socket-basierte Aktivieren benutzt
.swap Angaben zur Auslagerungsdatei
.target fasst mehrere Units zu einem Synchronisationspunkt zusammen (ehemals Runlevel)
.timer setzt einen Timer für eine zurückgehaltene oder vorgesehene Aktivität

Grundsätzlich liegen diese Dateien und die symbolischen Links hierzu unter /lib/systemd, damit die Software diese beim Booten erreicht. Zumindest bei Debian finden sich weitere Unit-Dateien unter /usr/lib/systemd. Geänderte Unit-Dateien befinden sich unter /etc/systemd/system. Vom System selbst zur Laufzeit geschaffene Dateien finden Sie unter /run/systemd/system. Listing 4 zeigt den Aufbau einer Unit-Datei für den At-Daemon.

Listing 4

[Unit]
Description=Deferred execution scheduler
Documentation=man:atd(8)
[Service]
ExecStart=/usr/sbin/atd -f
IgnoreSIGPIPE=false
[Install]
WantedBy=multi-user.target

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 9 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Systemstart
    Auf fast allen modernen Linux-Distributionen kümmert sich inzwischen Systemd um den Systemstart – und mehr. Wir erklären, wie die neue Schaltzentrale funktioniert.
  • Systemstart mit Systemd
    Einschalten, loslegen: Mit Systemd versucht eine Gruppe Entwickler die Revolution im Boot-Prozess. Ob der Turbo aber wirklich zündet, steht noch in den Sternen.
  • Systemd als Schaltzentrale für das Linux-System
    Systemd polarisiert die Community – und hat zugleich das Zeug dazu, alte Gräben zu schließen und eine einheitliche Basis für Linux zu bilden.
  • Upstart und Systemd im Vergleich
    Upstart und Systemd – gleich zwei neue Ansätze konkurrieren um die Pole-Position beim Linux-Start. Wir unterziehen die Kandidaten einem konzeptionellen Vergleich.
  • Systemd 209 freigegeben
    Die neue Version des Init-Systems bringt viele kleine Änderungen mit. So ist Systemd jetzt auf KDbus vorbereitet und übernimmt die Konfiguration von Netzwerkschnittstellen mit dem neuen Dienst Networkd.
Kommentare

Infos zur Publikation

LU 01/2018: FLINKE BROWSER

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Suchprogramm
Heiko Taeuber, 17.01.2018 21:12, 0 Antworten
Hallo liebe Community, keine Ahnung ob dieses Thema hier schon einmal gepostet wurde. Ich hab...
Linux Mint als Zweitsystem
Wolfgang Robert Luhn, 13.01.2018 19:28, 3 Antworten
Wer kann mir helfen??? Habe einen neuen Laptop mit vorinstaliertem Windows 10 gekauft. Möchte g...
externe soundkarte Kaufempfehlung
lara grafstr , 13.01.2018 10:20, 3 Antworten
Hallo Ich bin auf Suche nach einer externen soundkarte.. Max 150 Euro Die Wiedergabe is...
Prozessor-Sicherheitslücke Meltdown und Spectre
Wimpy *, 06.01.2018 10:45, 2 Antworten
Ich habe heute ein Sicherheitsupdate "ucode-intel" für openSuse 42.3 erhalten. Ist damit das Prob...
LENOVO ideapad320 Touchpad Linux Mint 18
Peter Deppen, 23.12.2017 16:49, 3 Antworten
Hallo, bin Linux Anfänger und habe das Problem, dass das Touchpad auf dem LENOVO ideapad320 mit L...