systemd

Systemd - So startet es Ihr System

Systemd - So startet es Ihr System
Systemd wurde entwickelt, als Entwickler feststellten, dass ein paralleler Start des Systems nicht möglich war. Die älteren Systeme durchsuchen ihre Systemstartdateien nacheinander. Dies kann dazu führen, dass der Bootvorgang stoppt, wenn auf langsame Ressourcen gewartet wird. Ein Beispiel dafür ist, wenn ein Prozess das Netzwerk laufen lassen muss. Die Nutzung des Netzwerks ist sehr langsam, andere Ressourcen sollten nicht warten müssen. Dieses Problem kann auf andere Weise gemildert werden, aber mit systemd werden alle Startvorgänge nach Möglichkeit parallel durchgeführt. Das Ergebnis sollte ein viel schnellerer Start für komplexe Systeme sein, einschließlich Ihres Desktop-Systems.

Systemd: Vater aller anderen Prozesse

Ein Linux- und jedes andere *nix-System startet immer einen Prozess, der der Vater aller anderen Prozesse ist. Wenn Sie Systemd verwenden, ist dieser Prozess systemd, der Prozess wird immer 'init' genannt, unabhängig vom init-System. Sobald systemd ausgeführt wird, werden die Daemons gestartet, die die Subsysteme ausführen. Die Daemons kontrollieren, welche Ressourcen Sie haben und welche Systeme geöffnet sind. Ihre Anmeldeaufforderung ist ein von systemd verwalteter Dienst. Systemd startet viele andere Dienste und mountet auch alle Ihre Festplatten, einschließlich der Snap-Mounts.

Wie kontrollierst du, was beginnt??

Zunächst einmal hatte das früheste Init-System Runlevels, die viele Leser erkennen werden. Runlevel 1 war Single-User-Modus, 2 Multi-User-Modus ohne Netzwerk und 3-5 Multi-User und grafisch. Das Setzen des Runlevels auf 0 bedeutete Halt und 6 bedeutete Neustart. Die Entwickler von systemd fanden diese Ebenen unklar und änderten sie in Targets. Ziele sind nicht genau gleich, haben aber eine ähnliche Funktion. Wenn ein bestimmtes Ziel ausgeführt wird, wird eine bestimmte Sammlung von Einheiten ausgeführt. Mehr zu Einheiten später.

Festlegen des „Runlevels“, genannt Ziel.

Sie können das Ziel während des Laufens ändern, zum Beispiel können Sie ein Terminal verwenden, um Ihr Ziel auf Mehrbenutzer einzustellen. Dies würde Ihre GUI, X oder Wayland stoppen, aber Sie und andere lassen sich mit einer Textkonsole anmelden. Verwenden Sie den folgenden Befehl.

$ systemctl Mehrbenutzer isolieren.Ziel

Oder verwenden Sie stattdessen den folgenden Befehl, wenn Sie Ihren Desktop starten möchten.

$ systemctl graphisch isolieren.Ziel

Was dich wirklich interessiert, ist, wie du das richtige Level startest. Auf diese Weise kannst du herausfinden, was du gerade hast.

$ systemctl get-default

Um die Standardeinstellung zu ändern, setzen Sie es.

$ systemctl set-default grafisch.Ziel

Dieser Befehl lässt tatsächlich viele Einheiten und Dienste starten, wenn Sie Ihren Computer starten. Vielleicht möchten Sie jedoch einen einzelnen Dienst starten oder stoppen.

STARTEN, stoppen, aktivieren und deaktivieren eines Dienstes.

Hier haben Sie die Möglichkeit zu ändern, was beim Booten und während des normalen Betriebs passiert. Im Gegensatz zu den Zielen sind Einheiten für einen bestimmten Dienst etwas Besonderes. Um einen Dienst zu stoppen, verwenden Sie 'systemctl stop', ebenso können Sie 'start' und 'restart' verwenden. Um einen Dienst beim Booten zu starten, verwenden Sie 'enable', um ihn zu stoppen 'disable'. Wählen Sie einen Dienst aus und starten und stoppen Sie ihn, während er läuft.

$ systemctl-statusbecher.Bedienung

Dieser Befehl zeigt den Status des Dienstes an, er zeigt auch eine Liste der Aktionen an, die das System bezüglich des Dienstes durchgeführt hat. Um den Dienst zu stoppen, verwenden Sie den folgenden Befehl.

$ systemctl stop cups.Bedienung

Der Dienst ist jetzt für Ihre aktuelle Sitzung angehalten. Um es so zu ändern, dass es beim nächsten Start nicht startet, verwenden Sie disable.

$ systemctl Tassen deaktivieren.Bedienung

Beachten Sie, dass Sie den Dienst nur deaktivieren können, dies hätte keine Auswirkungen auf Ihre aktuelle Situation. Der Dienst läuft einfach weiter. Beim nächsten Booten wird der Dienst jedoch nicht gestartet.

Systemd steuert auch Halterungen, Geräte, Steckdosen und mehr. Einheiten sind weiter unten und leichter zu verstehen, wenn Sie schon einmal mit einem Linux zu tun hatten. Sie können diese auch selbst festlegen, aber der größte Effekt beim Booten besteht darin, Dienste zu steuern.

Wie fügst du deine eigenen Skripte hinzu??

Sie können ganz einfach Ihre eigenen Skripte hinzufügen. Interessant ist, wie Sie Ihr Skript oder Ihren Dienst von anderen abhängig machen. Dies wird in dieser WLAN-Resume-Dienstdatei anschaulich demonstriert.

[Einheit]
Description=Netzwerkmanager bei Wiederaufnahme neu starten
Nach=Aussetzen.Ziel
Nach=überwintern.Ziel
Nach=Hybrid-Schlaf.Ziel
 
[Bedienung]
Typ=oneshot
ExecStart=/bin/systemctl restart network-manager.Bedienung
 
[Installieren]
WantedBy=aussetzen.Ziel
WantedBy=hibernate.Ziel
WantedBy=hybrid-sleep.Ziel

Dieser Code erstellt einen Dienst, der einmal (oneshot) nach den drei im Code genannten Zielen ausgeführt wird. Der ausgeführte Code ist in diesem Fall ein einzelner Befehl. Sie können ExecStart auch auf ein Skript Ihrer Wahl verweisen.

Fazit

Sie können Ihr System selbst ändern, insbesondere wie es bootet, aber beachten Sie, dass dies viele Konsequenzen für jeden Dienst hat. Stellen Sie also sicher, dass Ihr Code stabil und schnell ausführbar ist.

Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...
So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...
Open-Source-Ports kommerzieller Spiele-Engines
Kostenlose, quelloffene und plattformübergreifende Spiel-Engine-Nachbildungen können verwendet werden, um sowohl alte als auch einige der relativ neue...