Big Brother

Stürzt ein lebenswichtiger Dienst ab, sollte Systemd ihn möglichst schnell neu starten. Da sich jedoch ein Dienst selbst zu klonen vermag und bei Bedarf weitere Programme startet, fiel es in der Vergangenheit schwer, dessen endgültiges Ableben festzustellen.

Systemd löst das Problem recht elegant mit Hilfe der relativ neuen Control Groups, kurz Cgroups des Linux-Kernels. Mit diesen fasst das Betriebssystem Programme oder genauer gesagt Prozesse zusammen. Systemd sperrt nun jeden von ihm gestarteten Dienst in eine solche Gruppe. Sollte der Dienst weitere Programme aktivieren oder Kopien von sich selbst erstellen (forken), wie es beispielsweise Webserver oder SSH-Daemons tun, landen die Kind-Prozesse in der gleichen Gruppe. Befindet sich kein aktiver Prozess mehr in einer Gruppe, gilt der Dienst als abgestürzt oder beendet. Systemd startet ihn dann neu.

Der Systemd kümmert sich aber nicht nur um Dienste, sondern hängt bei Bedarf Partitionen ein und prüft sie auf Fehler. Damit diese zeitaufwendigen Aufgaben wieder nebenbei und parallel zum Start aller Dienste passieren, greift Systemd hier auf die Hilfe von Autofs [3] zurück: Versucht ein Programm in ein noch nicht verfügbares Device zu speichern, puffert der Kernel die Anfrage. Sobald das Dateisystem schließlich bereit steht, gibt er die Daten weiter.

Dieses Prinzip ermöglicht es, zum Beispiel die Home-Partition im Netzwerk via Samba freizugeben, obwohl Fsck sie gerade noch auf Fehler prüft. Ergänzend überwacht Systemd einzelne Verzeichnisse und sobald ein Programm darauf zugreift, hängt er automatisch das passende Dateisystem ein.

Muschelersatz

Die meisten Distributionen starten bislang die einzelnen Dienste via Shell-Skript. Das Starten von externen Programmen und Subshells schluckt allerdings extrem viel Rechenzeit. Darüber hinaus nutzen viele Skripte rekursive Konstrukte sowie redundante Befehle, sind fehleranfällig und irgendwann schwierig zu warten. Daher sind Poettering sämtliche Skripte ein Dorn im Auge, weshalb er sie bei der Arbeit an Systemd konsequent vermieden hat.

Die Maintainer sollen die Funktionen der Skripte durch richtige, vorzugsweise in C geschriebene und somit schnell ablaufende Programme ersetzen oder in die Daemons selbst integrieren. Einige besonders wichtige und gebräuchliche Funktionen übernimmt Systemd selbst.

Derzeit vermag er unter anderem den Hostnamen zu setzen (also den Namen des Computers), sich wie erwähnt um das Mounten der Dateisysteme kümmern und die Sprache einstellen (System Locale). Die diesbezüglichen Einstellungen liest Systemd aus den bekannten Konfigurationsdateien – zumindest fast.

In einigen Fällen nutzen die Distributionen nämlich unterschiedliche Dateien. Der Name des Systems liegt beispielsweise unter Fedora in /etc/sysconfig/network, OpenSuse benutzt /etc/HOSTNAME und Debian wiederum /etc/hostname. In solchen Fällen haben sich die Systemd-Macher für eine Datei entschieden. Den Hostnamen erwartet Systemd beispielsweise in /etc/hostname. Auf diese Weise versuchen die Systemd-Entwickler die Distributionen durch die Hintertür weiter zu standardisieren.

Die Tabelle "Wichtige Verzeichnisse und Konfigurationsdateien" zeigt einen kleinen Überblick über die wichtigsten Konfigurationsdateien und Verzeichnisse, die übrigens in Absprache mit den Distributoren entstanden sein sollen. Weitere Informationen hierzu liefert Lennart Poettering in seinem Blog [4].

Wichtige Verzeichnisse und Konfigurationsdateien

Datei Inhalt
/etc/hostname Hostname des Systems
/etc/vconsole.conf Tastaturbelegung und Schriftart der Konsole
/etc/locale.conf Spracheinstellungen (Locale)
/etc/modules-load.d/*.conf Kernel-Module, die das System beim Start lädt
/etc/sysctl.d/*.conf Konfiguration für Sysctl-Parameter
/etc/tmpfiles.d/*.conf Konfiguration für alle Dateien, die das System beim Start erstellen, entfernen oder aufräumen soll
/etc/binfmt.d/*.conf Konfiguration für Binärformate um Java-, Mono- und Wine-Programme direkt zu starten
/etc/os-release Name und weitere Informationen über die Distribution (Ersatz für /etc/fedora-release und ähnliche Dateien)
/etc/machine-id Die ID des Computers
/etc/machine-info (Meta-)Informationen über den Computer
/run Hier sollen Programme und Dienste temporäre Informationen ablegen, die in /tmp fehl am Platze wären. Dazu gehören beispielsweise Socket-Informationen oder Lock-Dateien. /run dient somit als Ersatz für /var/run, ist aber ein temporäres Verzeichnis (Stichwort tempfs).

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Die Neuerungen der Version 198

    Die frisch veröffentlichte Version bietet neben neuen Werkzeugen unter anderem auch die Möglichkeit, die Unit-Definitionen mit zusätzlichen Konfigurationsdateien zu überschreiben.
  • 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.
  • Neuerungen in Systemd

    Auf der Mailingliste hat Systemd-Entwickler Lennart Poettering Version 202 der Software angekündigt.
  • 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.
  • 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

title_2014_10

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

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

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

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...