systemctl: Vollständige Kontrolle unter Linux in 12 Schritten

systemctl 12 Befehle, die Linux meistern

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 
Verwenden Sie den Befehl stat, um zu sehen, ob eine Linux-Installation SystemV oder systemd verwendet.

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 des Befehls „systemctl list-units“ zeigt laufende und gestoppte Dienste.

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
Die Ausgabe des Befehls „systemctl list-units“ zeigt alle Dienste.

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 Ausgabe des Befehls „systemctl list-units“, gefiltert, um nur laufende Dienste anzuzeigen.

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
Die Ausgabe des Befehls „systemctl list-units“, gefiltert, um nur fehlgeschlagene Dienste anzuzeigen. Es liegen keine Dienstfehler vor.

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
Die Ausgabe des Befehls „systemctl list-dependencies“ zeigt die Abhängigkeiten für den SSHD-Dienst.

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
Verwenden Sie systemctl is-enabled, um zu bestimmen, ob ein bestimmter Dienst aktiviert ist.

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
Starten eines Dienstes mit dem Befehl „systemctl start“.

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
Überprüfen des Status eines Dienstes mit dem Befehl „systemctl status“.

Das Beenden eines Dienstes ist genauso einfach wie das Starten.

Schweiß systemctl stoppen htg-Beispiel.Service
Beenden eines Dienstes mit dem Befehl „systemctl stop“.

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
Neustarten eines Dienstes mit dem Befehl „systemctl restart“.

Wenn Sie möchten, dass ein Dienst beim Booten gestartet wird, müssen Sie ihn aktivieren.

Schweiß systemctl aktivieren htg-Beispiel.Service
Aktivieren eines Dienstes mit dem Befehl „systemctl enable“.

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
Aktivieren und Starten eines Dienstes gleichzeitig mit dem Befehl systemctl enable --now.

Wenn Sie einen Dienst nicht mehr zum Starten beim Booten benötigen, deaktivieren Sie ihn.

Schweiß systemctl deaktivieren htg-Beispiel.Service
Deaktivieren eines Dienstes mit dem Befehl „systemctl disable“.

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
Verwenden Sie den Befehl „journalctl“, um Systemprotokolleinträge anzuzeigen, die sich auf einen bestimmten Dienst beziehen.

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. 🔧🛠️

5 1 Abstimmung
Artikelbewertung
Abonnieren
Benachrichtigen Sie über
Gast

0 Kommentare
älteste
Neueste Die meisten haben abgestimmt
Online-Kommentare
Alle Kommentare anzeigen