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 12/2017: Perfekte Videos

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

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...