Was ist Systemctl
?
Systemctl
ist das zentrale Verwaltungstool zur Steuerung der systemd init
System. Daher verwenden Sie diesen Befehl am häufigsten, um mit systemd
zu interagieren System. Die meisten Linux®-Distributionen verwenden systemd
als ihre init
system, daher ist es hilfreich, sich mit der Verwendung von systemctl
vertraut zu machen Funktion zur Verwaltung der auf Ihrem Linux-System ausgeführten Dienste.
Dienste verwalten
Das folgende Beispiel zeigt die grundlegende Befehlsvorlage für die Verwendung von systemctl
Befehl:
systemctl (command) (service)
Dies unterscheidet sich vom Service-Befehl durch einen service (service) (command) -Format, das Befehle wie service httpd reload to reload the Apache service
. Verwenden Sie diesen Namen beispielsweise unter systemctl
Format sieht der Befehl wie in den folgenden Beispielen aus:
CentOS®-basierte oder Red Hat® Enterprise Linux®-basierte Systeme:
systemctl reload httpd
Ubuntu-Betriebssysteme:
systemctl reload apache2
Hinweis: Sie müssen .service nicht einbinden nach dem Namen des Dienstes, den Sie verwalten möchten. Systemctl ist intelligent genug, um zu wissen, dass Sie versuchen, einen Dienst zu betreiben, wenn Sie Dienstverwaltungsbefehle verwenden.
Es folgen einige allgemeine systemctl
Befehle:
- beginnen :Starten Sie einen Dienst, der derzeit nicht ausgeführt wird
- Stopp :Stoppen Sie einen derzeit laufenden Dienst
- Neustart :Starten Sie einen aktuell laufenden Dienst neu
- neu laden :Soft-Neustart eines aktuell laufenden Dienstes durchführen
- aktivieren :Einen Dienst automatisch starten lassen, wenn das System neu gestartet wird
- deaktivieren :Verhindert, dass ein Dienst automatisch gestartet wird, wenn das System neu gestartet wird
- Status :Überprüfen Sie den aktuellen Status eines Dienstes auf Ihrem System
Hinweis :Das reload
Option ist nicht immer verfügbar. Sie können reload-or-restart
verwenden stattdessen, wenn Sie sich nicht sicher sind, reload
Verfügbarkeit. Verwenden von reload-or-restart
versucht, reload
zu verwenden zuerst und verwendet restart
wenn reload
ist nicht verfügbar.
Im Folgenden sind einige weniger gebräuchliche Optionen aufgeführt:
- ist-aktiv :Überprüfen Sie, ob eine Einheit gerade aktiv ist (läuft)
- ist aktiviert :Überprüfen Sie, ob ein Dienst aktiviert oder deaktiviert ist
- fehlgeschlagen :Überprüfen Sie, ob ein Dienst in einem fehlgeschlagen ist Zustand
- list-units :Überprüfen Sie alle Einheiten, die
systemd
derzeit auf dem System als aktiv betrachtet
Der list-units-Befehl
Die list-units
Option zeigt eine Tabelle mit den folgenden Spalten:
- EINHEIT :Der Name der systemd-Einheit (oder des Dienstes)
- LADEN :Der derzeit in systemd geladene Dienst
- AKTIV :Eine Zusammenfassung, ob der Dienst derzeit aktiv ist
- SUB :Gibt etwas mehr Details über den aktuellen Zustand des Dienstes an
- BESCHREIBUNG :Eine kurze Beschreibung dessen, was der Dienst ist oder tut
Hinzufügen von --all
Argument für die list-units
systemctl
Der Befehl enthält jeden Dienst, der systemd
enthält geladen oder versucht zu laden, unabhängig von seinem aktuellen Status auf dem System, wie im folgenden Beispiel gezeigt:
systemctl list-units --all
Sie können die list-units
verwenden Der Befehl kann auf einige zusätzliche Arten verwendet werden, z. B. durch Hinzufügen von --state=
filtern, wie im folgenden Beispiel gezeigt:
systemctl list-units --all --state=(filter)
Normalerweise verwenden Sie diese Option, um die Ergebnisse nach dem aktuellen Status des Dienstes zu filtern, entweder active
oder inactive
,wie im folgenden Beispiel gezeigt:
systemctl list-units --all --state=inactive
Sie können die Ergebnisse weiter filtern, indem Sie das folgende Argument hinzufügen:
systemctl list-units --type=(filter)
Diese Option teilt systemctl
mit um nur die Dienste des angegebenen Typs aufzulisten. Beispiel:Ersetzen von (filter)
mit (service)
im vorhergehenden Befehl listet nur aktive Diensteinheiten auf.
Ebenso können Sie den Befehl systemctl list-units-files
verwenden listet jede verfügbare Unit-Datei innerhalb von systemd
auf Pfad, einschließlich derjenigen, die systemd
hat nicht versucht zu laden.
Der Maskenbefehl
Wenn Sie verhindern müssen, dass ein Dienst manuell oder automatisch gestartet wird, können Sie die mask
verwenden Befehl mit systemctl
.Angenommen, Sie möchten sicherstellen, dass Apache® nicht ausgeführt wird. Wenn Sie nicht als Root ausgeführt werden, müssen Sie sudo
platzieren Befehl vor dem Befehl. Ansonsten sieht der Befehl wie im folgenden Beispiel aus:
systemctl mask httpd.service
oder
systemctl mask apache2.service
Wenn Sie die Markierung des Dienstes aufheben möchten, ersetzen Sie die vorhergehende mask
mit unmask
, und der Dienst kann erneut gestartet werden.
Schlussfolgerung
Während es fortgeschrittenere Verwendungen von systemctl
gibt Dies sind die Verwendungsoptionen, die Sie am häufigsten verwenden werden. Sie sind jetzt mit den häufigsten Verwendungen von systemctl
vertraut bei der Interaktion mit systemd
. Systemctl
ist Ihre Hauptinteraktionsmethode für das Service-Management.