{"id":1927,"date":"2024-12-04T08:00:00","date_gmt":"2024-12-04T07:00:00","guid":{"rendered":"https:\/\/www.fuhselab.de\/?p=1927"},"modified":"2025-05-28T07:51:50","modified_gmt":"2025-05-28T05:51:50","slug":"systemd","status":"publish","type":"post","link":"https:\/\/www.fuhselab.de\/index.php\/2024\/12\/04\/systemd\/","title":{"rendered":"Systemd"},"content":{"rendered":"\n<p><br>In diesem Artikel werden die Grundlagen von \u201cSystemd\u201c beschrieben&#8230;<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Systemd und Abh\u00e4ngigkeiten:<\/strong><\/p>\n\n\n\n<p>W\u00e4hrend System-V-Init und Upstart explizite Abh\u00e4ngigkeiten von Diensten untereinander ausnutzen \u2013 Dienste zum Beispiel, die den Systemprotokolldienst benutzen, k\u00f6nnen erst gestartet werden, wenn der Systemprotokolldienst l\u00e4uft \u2013, dreht systemd die Abh\u00e4ngigkeiten um: Ein Dienst, der den Systemprotokolldienst voraussetzt, tut das ja nicht, weil der Protokolldienst laufen muss, sondern weil er selbst Protokollnachrichten loswerden m\u00f6chte. Dazu muss er auf den Kommunikationskanal zugreifen, \u00fcber den der Systemprotokolldienst erreicht werden kann. Es reicht also v\u00f6llig aus, wenn systemd selbst diesen Kommunikationskanal anlegt und ihn an den Systemprotokolldienst weiterreicht, sobald dieser tats\u00e4chlich zur Verf\u00fcgung steht. Der Dienst, der protokollieren m\u00f6chte, wartet, bis seine Nachrichten tats\u00e4chlich angenommen werden k\u00f6nnen. Systemd kann also im Wesentlichen erst alle Kommunikationskan\u00e4le erzeugen und dann alle Dienste ohne R\u00fccksicht auf Abh\u00e4ngigkeiten gleichzeitig starten. Die Abh\u00e4ngigkeiten regeln sich \u2013 ganz ohne explizite Regeln in der Konfiguration \u2013 von selbst.<\/p>\n\n\n\n<p><strong>Units und Ziele:<\/strong><\/p>\n\n\n\n<p>Systemd verwendet \u201cUnits\u201c als Abstraktion f\u00fcr zu verwaltende Systemaspekte wie Dienste, Kommunikationskan\u00e4le oder Ger\u00e4te. Sogenannte Ziele (targets) treten an die Stelle der Runlevel von SysV-Init und dienen zur Zusammenfassung verschiedener Units. Ziele (targets) sind f\u00fcr systemd im Gro\u00dfen und Ganzen das, was f\u00fcr System-V-Init die Runlevels sind: Die M\u00f6glichkeit, eine Menge von Diensten bequem zu beschreiben. W\u00e4hrend System-V-Init nur eine relativ kleine Anzahl von Runlevels erlaubt und ihre Konfiguration ziemlich kompliziert ist, erm\u00f6glicht systemd die problemlose Definition diverser Ziele.<\/p>\n\n\n\n<p><strong>Unit-Dateien:<\/strong><\/p>\n\n\n\n<p>Einer der gravierenden Vorteile von systemd ist, dass er ein einheitliches Dateiformat f\u00fcr alle Konfigurationsdateien verwendet \u2013 egal, ob es um zu startende Dienste, Ger\u00e4te, Kommunikationskan\u00e4le, Dateisysteme oder andere von systemd verwaltete Artefakte geht.<\/p>\n\n\n\n<p><strong>Praxisbeispiele f\u00fcrs Terminal \u2013 Teil 1:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>systemctl<\/li>\n\n\n\n<li>systemctl list-unit-files<\/li>\n<\/ul>\n\n\n\n<p>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?<\/p>\n\n\n\n<p><strong>Analyse des Systems:<\/strong><\/p>\n\n\n\n<p>\u201cSystemd\u201c besitzt mehrere Hilfsprogramme zur Analyse des Systems\u2026.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sudo systemd-analyze blame<\/li>\n<\/ul>\n\n\n\n<p>Gibt eine Liste aller laufenden Units von systemd aus, sortiert nach der Zeit, die diese f\u00fcr die Initialisierung ben\u00f6tigt haben.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>sudo systemd-analyze time<\/li>\n<\/ul>\n\n\n\n<p>Zeigt an, wie lange das System ben\u00f6tigt hat, bis der Userspace vollst\u00e4ndig geladen und initialisiert war.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Artikel werden die Grundlagen von \u201cSystemd\u201c beschrieben&#8230;<\/p>\n","protected":false},"author":1,"featured_media":791,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[21],"class_list":["post-1927","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux-gruppe-peine"],"_links":{"self":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1927","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/comments?post=1927"}],"version-history":[{"count":2,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1927\/revisions"}],"predecessor-version":[{"id":2860,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/posts\/1927\/revisions\/2860"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media\/791"}],"wp:attachment":[{"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/media?parent=1927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/categories?post=1927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fuhselab.de\/index.php\/wp-json\/wp\/v2\/tags?post=1927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}