{"id":14073,"date":"2024-02-04T03:39:03","date_gmt":"2024-02-04T02:39:03","guid":{"rendered":"https:\/\/linux-bibel.at\/?p=14073"},"modified":"2024-02-04T19:15:50","modified_gmt":"2024-02-04T18:15:50","slug":"warum-wird-systemd-eigentlich-gerne-schlecht-geredet","status":"publish","type":"post","link":"https:\/\/linux-bibel.at\/index.php\/2024\/02\/04\/warum-wird-systemd-eigentlich-gerne-schlecht-geredet\/","title":{"rendered":"Warum wird Systemd eigentlich gerne schlechtgeredet?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Die Einf\u00fchrung von <a href=\"https:\/\/linux-bibel.at\/index.php\/2023\/09\/03\/systemd-die-steuerzentrale-von-linux\/\" data-type=\"post\" data-id=\"783\">Systemd<\/a> war f\u00fcr so einige Linux-Enthusiasten ein vollkommener Umbau von Linux, absolut b\u00f6se &#8211; die Reiter der Apokalypse kommen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Grundlegend war Systemd zu Beginn nur f\u00fcr den Start der Dienste unter Linux zust\u00e4ndig &#8211; also um ein lauff\u00e4higes System zu bekommen. Davor wurde jeder Dienst einzeln gestartet. Dies dauerte nat\u00fcrlich so seine Zeit, Systemd startet hingegen mehrere Dienste zur selben Zeit. Schnell wurden Systemd jedoch mehrere Funktionen hinzugef\u00fcgt &#8211; etwa die Verwaltung der Logs, man kann damit sein System automatisieren und vieles mehr.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Warum bezeichnen manche Systemd nun als b\u00f6se?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Unter Linux herrscht seit jeher die Philosophie <em>&#8222;One task &#8211; one tool&#8220;<\/em> &#8211; also f\u00fcr eine Aufgabe ein Werkzeug. Systemd hingegen verwaltet nicht nur eine einzige Aufgabe, sondern viele. Noch dazu kommt: Systemd legt die Logs in bin\u00e4re Dateien statt in reine Textdateien  &#8211; man kann also etwa keinen einfachen Texteditor nutzen, um in diese Einblick zu erhalten. B\u00f6se, sehr b\u00f6se.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aber Systemd ist reine freie Software, deshalb auch im Quellcode verf\u00fcgbar. Systemd ist nicht b\u00f6se, weil es so viele undokumentierte Funktionen geben w\u00fcrde &#8211; sondern weil wohl nur der Red-Hat-Entwickler Poettering wirklich versteht, was Systemd alles kann und wie es dies tut. Heute haben wir unter Linux mit Systemd ein einfach zu handhabendes Werkzeug f\u00fcr viele Dinge.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nach der Theorie noch ein wenig Technik<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Hinter Systemd stecken nicht nur die <strong>services<\/strong> &#8211; also die zu verwaltenden Dienste -, sondern auch die <strong>sockets<\/strong> &#8211; interne Netzwerkverbindungen zwischen den Diensten &#8211; und die <strong>targets<\/strong>. Targets sind die Ziele, die mit Systemd zu erreichen sind &#8211; also Zust\u00e4nde des Systems, die erreicht werden sollen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unter dem vorangegangenen Link finden Sie weitere Informationen, hier sehen wir uns etwas mehr die Theorie an, um zu verstehen, wie die Technik dahinter funktioniert. Lassen wir uns beispielsweise einmal anzeigen, was hinter den Targets steckt. Es gibt etwa das Target <strong>reboot.target<\/strong> &#8211; es startet das Betriebssystem, den Computer, neu. Um uns die einzelnen Services dahinter anzusehen, nutzen wir den Befehl <code>systemctl<\/code> mit der Option <code>list-dependencies<\/code> und dem gew\u00fcnschten Target:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl list-dependencies reboot.target<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl.jpeg\" rel=\"lightbox-0\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"593\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1024x593.jpeg\" alt=\"\" class=\"wp-image-14074\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1024x593.jpeg 1024w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1536x889.jpeg 1536w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-2048x1186.jpeg 2048w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-150x87.jpeg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-300x174.jpeg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-768x445.jpeg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Um <strong>reboot.target<\/strong> auszuf\u00fchren, sind also folgende Services auszuf\u00fchren:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"has-medium-font-size\"><strong>plymouth-reboot.service<\/strong> &#8211; grafische Oberfl\u00e4che f\u00fcr den Start, Shutdown (<em>Logo, Fortschrittsbalken &#8230;<\/em>)<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>plymouth-switch-root-initramfs.service<\/strong> &#8211; die initiale Start-Datei<\/li>\n\n\n\n<li class=\"has-medium-font-size\"><strong>systemd-reboot.service<\/strong> &#8211; Systemd neu starten<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr das <strong>graphical.target<\/strong> &#8211; also das Standard-System mit grafischer Oberfl\u00e4che &#8211; sind schon einige Services mehr n\u00f6tig:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl list-dependencies graphical.target<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1-scaled.jpeg\" rel=\"lightbox-1\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1-1024x640.jpeg\" alt=\"\" class=\"wp-image-14075\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1-1024x640.jpeg 1024w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1-1536x960.jpeg 1536w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1-2048x1280.jpeg 2048w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1-150x94.jpeg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1-300x188.jpeg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-1-768x480.jpeg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die in der Auflistung aufgef\u00fchrten <strong>services<\/strong>, <strong>mounts<\/strong>, <strong>targets<\/strong> und <strong>sockets<\/strong> m\u00fcssen also gestartet und auch heruntergefahren werden. Je nach installierten Diensten &#8211; etwa mit der Datenbank MariaDB <strong>mariadb.service<\/strong> &#8211; k\u00f6nnen es mehr oder weniger sein. Mit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl --type=target --all<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">k\u00f6nnen wir uns alle auf dem System vorhandenen Targets anzeigen lassen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-2-scaled.jpeg\" rel=\"lightbox-2\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-2-1024x640.jpeg\" alt=\"\" class=\"wp-image-14076\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-2-1024x640.jpeg 1024w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-2-1536x960.jpeg 1536w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-2-2048x1280.jpeg 2048w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-2-150x94.jpeg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-2-300x188.jpeg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/02\/sysctl-2-768x480.jpeg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In der Auflistung finden wir unter anderem etwa auch das Target <strong>rescue.target<\/strong> &#8211; in der tabellarischen Ansicht finden wir auch den aktuellen Status und nat\u00fcrlich eine kurze Beschreibung. Das <strong>rescue.target<\/strong> schleudert das System nat\u00fcrlich in den Rettungsmodus. Mit der Option <code>isolate<\/code> k\u00f6nnen wir in ein beliebiges Target wechseln &#8211; dies ist nat\u00fcrlich in diesem Beispiel nicht f\u00f6rderlich (<em>Sie schie\u00dfen damit alle laufenden Anwendungen ab und wechseln in den Rettungsmodus auf das Terminal<\/em>):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl isolate rescue.target<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt k\u00f6nnen wir nat\u00fcrlich auch einen Standard-Modus festlegen &#8211; das System startet dann automatisch in diesem Modus. Hierzu dient die Option <code>set-default<\/code> &#8211; wollen wir einmal standardm\u00e4ssig in den Modus ohne grafische Oberfl\u00e4che starten, dann so<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl set-default multi-user.target<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Beim n\u00e4chsten Neustart w\u00fcrde das System ohne grafische Oberfl\u00e4che direkt in das Terminal booten. Um wieder in die grafische Oberfl\u00e4che zu starten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl set-default graphical.target<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nat\u00fcrlich k\u00f6nnen Sie auch aus dem System ohne grafische Oberfl\u00e4che direkt in die grafische Oberfl\u00e4che starten, ohne das komplette System neu zu starten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl isolate graphical.target\n\n<\/code><\/pre>\n<div class=\"pld-like-dislike-wrap pld-custom\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir\" data-post-id=\"14073\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Hoch.png\" alt=\"Gef\u00e4llt mir\" \/>\r\n            <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">8    <\/span>\r\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir nicht\" data-post-id=\"14073\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Runter.png\" alt=\"Gef\u00e4llt mir nicht\" \/>\r\n            <\/a>\r\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\">1<\/span>\r\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Die Einf\u00fchrung von Systemd war f\u00fcr so einige Linux-Enthusiasten ein vollkommener Umbau von Linux, absolut b\u00f6se &#8211; die Reiter der Apokalypse kommen. Grundlegend war Systemd zu Beginn nur f\u00fcr den Start der Dienste unter Linux zust\u00e4ndig &#8211; also um ein lauff\u00e4higes System zu bekommen. Davor wurde jeder Dienst einzeln gestartet. Dies dauerte nat\u00fcrlich so seine [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":14076,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[15],"class_list":["post-14073","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-system","tag-system"],"_links":{"self":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/14073","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/comments?post=14073"}],"version-history":[{"count":7,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/14073\/revisions"}],"predecessor-version":[{"id":14093,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/14073\/revisions\/14093"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media\/14076"}],"wp:attachment":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media?parent=14073"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/categories?post=14073"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/tags?post=14073"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}