Systemd - wie es Ihr System startet

Systemd - wie es Ihr System startet
Systemd wurde entwickelt, als Entwickler feststellten, dass es nicht möglich war, das System parallel zu starten. Die älteren Systeme durchlaufen ihre Systemstartdateien nacheinander. Dies kann dazu führen, dass der Stiefel aufhört, wenn Sie auf Ressourcen warten, die langsam sind. Ein Beispiel hierfür ist, wenn ein Prozess das Netzwerk ausgeführt werden muss. Die Verwendung des Netzwerks ist sehr langsam, andere Ressourcen sollten nicht warten müssen. Dieses Problem kann auf andere Weise gemindert werden. Das Ergebnis sollte ein viel schnelleres 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, wird dieser Prozess systemd ist, der Prozess wird immer als "init" bezeichnet, unabhängig vom Init -System. Sobald Systemd ausgeführt wird, startet es die Daemons, die die Subsysteme ausführen. Die Daemons steuern, welche Ressourcen Sie haben und welche Systeme offen sind. Ihre Login -Eingabeaufforderung ist ein von systemd verwalteter Dienst. Systemd startet viele andere Dienste und montiert auch alle Ihre Festplatten, einschließlich der Snap Mounts.

Wie kontrollieren Sie, was beginnt??

Erstens hatte das früheste Init -System Runlevels, die viele Leser erkennen werden. Runlevel 1 war Einzelbenutzermodus, 2 Multi-Benutzer-Modus ohne Netzwerk und 3-5 Multi-Benutzer und grafisch. Das Einstellen des Runlevels auf 0 bedeutete Halt und 6 bedeutete Neustart. Entwickler von Systemd stellten fest, dass diese Ebenen unklar sind, damit sie so geändert wurde. 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 „Runlevel“, das als Ziel bezeichnet wird.

Sie können das Ziel während des Ausführens ändern, beispielsweise können Sie ein Terminal verwenden, um Ihr Ziel auf Multi-Benutzer festzulegen. Dies würde Ihre GUI, X oder Wayland stoppen, aber Sie und andere lassen, melden Sie sich mit einer Textkonsole an. Verwenden Sie den folgenden Befehl.

$ systemctl isolieren Multiuser.Ziel

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

$ systemctl isolieren grafisch.Ziel

Sie interessieren Sie wirklich, wie Sie das richtige Niveau starten können. Sie können herausfinden, was Sie gerade so haben.

$ SystemCTL Get-Default

Um den Standard zu ändern, setzen Sie es.

$ systemctl set-default grafisch.Ziel

In diesem Befehl beginnen viele Einheiten und Dienste, während Sie Ihren Computer starten. Möglicherweise möchten Sie jedoch einen einzigen Dienst einstellen oder stoppen.

Starten, Stoppen, Aktivieren und Deaktivieren eines Dienstes.

Hier haben Sie die Möglichkeit, das zu ändern, was beim Start und während des normalen Betriebs vor sich geht. Im Gegensatz zu den Zielen sind Einheiten für einen bestimmten Service etwas Besonderes. Um einen Dienst zu stoppen, den Sie "SystemCtl Stop" verwenden, können Sie gleichermaßen "Start" und "Neustart" verwenden. Um einen Service zu gestalten, starten Sie beim Start, verwenden Sie "Aktivieren", um ihn zu stoppen "deaktivieren". Wählen Sie einen Service aus und starten Sie und stoppen Sie ihn, während er läuft.

$ systemCTL Stat Cups.Service

Dieser Befehl zeigt den Status des Dienstes an, er zeigt auch eine Liste von Aktionen des Systems bezüglich des Dienstes an. Verwenden Sie den Befehl unten, um den Dienst zu stoppen.

$ systemCTL Stoppbecher.Service

Der Service wird jetzt für Ihre aktuelle Sitzung gestoppt. Um es so zu ändern, dass es nicht mit dem nächsten Start verwendet wird Deaktivieren.

$ systemctl deaktivieren Tassen.Service

Beachten Sie, dass Sie den Service nur deaktivieren konnten, dies würde sich nicht auf Ihre aktuelle Situation auswirken. Der Service läuft einfach weiter. Im nächsten Start wird der Dienst jedoch nicht gestartet.

Systemd steuert auch Moderationen, Geräte, Steckdosen und mehr. Einheiten sind niedriger und leichter zu verstehen, wenn Sie sich zuvor mit einem Linux befasst haben. Sie können diese auch selbst einstellen, aber der größte Effekt auf den Start besteht darin, die Dienste zu kontrollieren.

Wie fügen Sie Ihre eigenen Skripte hinzu?

Sie können Ihre eigenen Skripte ganz einfach hinzufügen. Die Details, die interessant zu wissen sind. Dies wird in dieser Wifi-Reseum-Dienstdatei ordentlich demonstriert.

[Einheit]
Beschreibung = NetworkManager bei Lebenslauf neu starten
Nach = suspend.Ziel
Nach = hibernate.Ziel
Nach = Hybridschlaf.Ziel
[Service]
Typ = OneShot
Execstart =/bin/systemctl starten Sie den Netzwerkmanager neu starten.Service
[Installieren]
Shodeby = suspend.Ziel
Shodenby = hibernate.Ziel
Wantby = hybrid head.Ziel

Dieser Code erstellt einen Dienst, der einmal (Oneshot) nach den drei im Code genannten Zielen erfolgt. Der ausführende Code ist in diesem Fall ein einzelner Befehl. Sie können genauso gut auf ein Skript Ihrer Wahl hinweisen.

Abschluss

Ändern Sie Ihr System, insbesondere wie es startet, Sie können sich selbst tun, achten Sie darauf, dass dies für jeden Service viele Konsequenzen hat. Stellen Sie daher sicher, dass Ihr Code stabil und schnell ausführt.