systemctl: 12 Befehle, die Linux meistern 🚀
Der Befehl systemctl verfügt über mehrere Funktionen, die oft übersehen werden. Neben dem Starten und Stoppen von Diensten in Linux können Sie auch installierte Dienste auflisten und deren Status überprüfen. Lassen Sie uns einen kurzen Rückblick geben! 🚀
Was ist der Systemctl-Befehl?
Der Befehl systemctl ist das zentrale Verwaltungstool für das Systemd-Init-System und wird hauptsächlich als Tool zum Starten und Stoppen von Diensten verwendet. Aber es gibt noch viel mehr, wie sein man page das mehr als 1600 Zeilen hat. 📖
Da systemctl ein Verwaltungstool und nicht nur ein Dienststarter ist, können Sie damit auf nützliche Informationen zu Ihrem System und seinen systemd-Diensten zugreifen. 💻
Die meisten Linux-Distributionen haben systemd übernommen, einige haben sich jedoch dafür entschieden, das traditionelle SystemV-Init-System beizubehalten. Wenn Sie nicht sicher sind, welches Ihre Distribution verwendet, können Sie das ganz einfach herausfinden. Wir werden den Stat-Befehl verwenden, um uns die Init-Datei anzusehen.
Statistik /sbin/init

Die ausführbare Datei /sbin/init ist der erste Prozess, der in SystemV-basierten Distributionen gestartet wird. In systemd-basierten Distributionen verweist ein symbolischer Link mit diesem Namen auf systemd.
Die erste Ausgabezeile zeigt uns, dass auf dieser Ubuntu-Testmaschine /sbin/init ein symbolischer Link zur Datei /lib/systemd/systemd ist. Offensichtlich verwendet diese Linux-Installation systemd. Wenn es sich um eine SystemV-basierte Distribution handeln würde, würde die Zeile nur „File: /sbin/init“ enthalten.
Abfragen von Diensten mit systemctl
Dienste werden in Unit-Dateien definiert und Sie werden das Wort „Unit“ überall in den Systemctl-Optionen finden. Beispielsweise können wir mit dem Befehl „list-units“ und der Option „–type“ eine Liste der Dienste abrufen.
systemctl Liste-units --type=Dienst

Die Ausgabe wird im Less-Dateibetrachter angezeigt, sodass Sie navigieren und mit der Taste / suchen können.
- Einheit: Der Name der Unit-Datei.
- Tragen: Wenn die Service-Unit-Datei ohne Syntaxfehler in den Speicher gelesen wurde, enthält diese Spalte „geladen“. Dies bedeutet nicht, dass der Dienst aktiv ist.
- Vermögenswert: Eine Übersicht, ob ein Dienst aktiv ist. Ein aktiver Dienst wird möglicherweise nicht ausgeführt.
- Sub: Eine detailliertere Ansicht, ob ein Dienst ausgeführt wird. Beispielsweise könnte ein aktiver Dienst für einen Timer geplant sein und seinen letzten Lauf beendet haben.
- Beschreibung: Eine Textzeile zur Identifizierung oder Beschreibung des Dienstes.
Die Anzeige umfasst nur aktive Dienste. Um alle Dienste anzuzeigen, müssen wir die Option –all einschließen.
systemctl Liste-units --all --type=Dienst

Wenn uns das Anzeigen aller Elemente zu viel ist, können wir die Ausgabe mit der Option –state filtern.
systemctl Liste-units --type=service --state=running

Die Statusoption akzeptiert „Wird ausgeführt“, „Gestoppt“, „Aktiviert“, „Deaktiviert“ und „Fehlgeschlagen“.
Um sich auf fehlgeschlagene Dienste zu konzentrieren, verwenden Sie die Option –failed.
systemctl Liste-units --failed

Auf diesem Computer sind keine Laufwerksfehler vorhanden.
Wenn Sie fehlgeschlagene Dienste sehen, verwenden Sie die Option „Liste der Abhängigkeiten“, um nach nicht erfüllten Abhängigkeiten zu suchen.
systemctl Liste-dependencies sshd.service

Der Status der Abhängigkeiten wird durch einen farbcodierten Kreis dargestellt. Könnte sein:
- Weißer Kreis: Inaktiv oder in Wartung
- Grüner Punkt: Vermögenswert.
- Weißpunkt: Deaktivieren.
- Roter Punkt: Fehlgeschlagen oder Fehler.
Um zu überprüfen, ob ein einzelner Dienst aktiviert ist, verwenden Sie den Befehl „is-enabled“ und geben Sie den Namen der Unit-Datei des Dienstes an.
systemctl es-enabled htg-example.service

Steuern von Diensten mit systemctl
Die Verwendung von systemctl zum Verwalten von Diensten ist sehr einfach und folgt dem Format der Befehle, die wir bisher gesehen haben. Der größte Unterschied besteht darin, dass Sie sudo verwenden müssen, um Änderungen an den Dienstzuständen vorzunehmen. Dies haben wir bisher nicht getan, da wir lediglich über den Status der Dienste berichtet haben.
Um einen Dienst zu starten, verwenden Sie den Startbefehl gefolgt vom Dienstnamen.
Schweiß systemctl Start htg-Beispiel.Service

Wenn alles gut geht, werden Sie stillschweigend zur Eingabeaufforderung zurückgeleitet. Wenn Sie eine positive Bestätigung bevorzugen, können Sie diese mit dem Statusbefehl überprüfen.
Schweiß systemctl Status htg-Beispiel.Service

Das Beenden eines Dienstes ist genauso einfach wie das Starten.
Schweiß systemctl stoppen htg-Beispiel.Service

Sie können einen Dienst neu starten, ohne den zweistufigen Prozess des Stoppens und erneuten Startens durchlaufen zu müssen. Er Neustartbefehl erledigt alles für Sie.
Schweiß systemctl Neustart htg-Beispiel.Service

Wenn Sie möchten, dass ein Dienst beim Booten gestartet wird, müssen Sie ihn aktivieren.
Schweiß systemctl aktivieren htg-Beispiel.Service

Beachten Sie, dass dadurch der Dienst nur zum Starten beim Booten markiert wird und nicht sofort gestartet wird. Wenn Sie das möchten, habe ich die Option –now hinzugefügt.
Schweiß systemctl aktivieren --Jetzt htg-Beispiel.Service

Wenn Sie einen Dienst nicht mehr zum Starten beim Booten benötigen, deaktivieren Sie ihn.
Schweiß systemctl deaktivieren htg-Beispiel.Service

Sie können den Befehl journalctl, einen weiteren Teil von systemd, verwenden, um nach Einträgen zu suchen, die sich auf Ihren Dienst beziehen. Mit der Option -u (Einheit) können Sie den Dienst angeben, für den Sie sich interessieren. Mit der Option -S (seit) können Sie Einträge anzeigen, die seit dem von Ihnen angegebenen Zeitpunkt aufgetreten sind.
journalctl -S "08:00:00" -oder htg-Beispiel.Service

Jedes Tool, das Ihnen hilft Informationen über den Betrieb erhalten Die internen Komponenten Ihrer Linux-Distribution sind sowohl für die tägliche Verwaltung als auch für die Fehlersuche und -diagnose von unschätzbarem Wert. Der Befehl systemctl ist kein einzelnes Tool. Es handelt sich eher um eine spezielle Werkzeugkiste und es lohnt sich, sich damit vertraut zu machen. 🔧🛠️