So verwenden Sie das SystemCTL -Dienstprogramm unter Linux

So verwenden Sie das SystemCTL -Dienstprogramm unter Linux
Unabhängig davon. Daher ist es ein großer Vorteil.

Dieses Tutorial führt Sie durch die Grundlagen des Service Managements unter Linux und zum Verwenden von SystemCTL zum Verwalten von Diensten, Informationen zu Systemeinheiten und erhalten Sie hilfreiche Informationen über den Status der Dienste in Ihrem System.

Was ist SystemCTL?

SystemCTL ist ein Linux-Befehlszeilen-Dienstprogramm zur Steuerung und Verwaltung von Systemd und Diensten. Sie sehen.

SystemCTL ist Nachfolger von Init.D System; Es enthält Bibliotheken, Daemons und Dienstprogramme, mit denen Sie Dienste im Linux -System verwalten können.

Was ist ein Service/eine Einheit??

In der Systemd -Sprache ist ein Dienst oder eine Einheit eine Ressource oder ein Objektsystem, das Systemd kennt und weiß, wie man sich angibt.

Obwohl es technisch korrekt ist, ein Gerät als Dienst in Systemd zu klassifizieren.

Einheiten werden in einer Datei definiert, die als Einheitsdatei bezeichnet wird. Systemd kann Einheitsdateien von jedem Ort aus verwalten, der Hauptstandort ist jedoch/etc/systemd/systemverzeichnis. Die Einheitsdateien in diesem Verzeichnis sind hauptsächlich von Benutzer bereitgestellt. Im Vergleich zu anderen Standorten weist der SystemD -Manager den Einheitsdateien im obigen Verzeichnis höhere Vorrang vor.

NOTIZ: Sie finden möglicherweise auch Einheitsdateien im Verzeichnis/lib/systemd/system, das Einheitsdateien enthält, die vom System und installierten Pakete geliefert werden. Stellen Sie sicher, dass Sie beide Standorte bei der Bearbeitung einer Einheitsdatei überprüfen.

SYSTEM -Einheitstypen

Die Einheitsdateien sind mit einem Suffix in der Einheitsdatei gekennzeichnet, die dem Administrator einen Hinweis auf seinen Zweck geben, der auf dem Suffix basiert.

Im Folgenden finden Sie die in Systemd gefundenen Einheitsdateien.

  • .Service - Service -Einheitsdateien definieren, wie Systemd einen Dienst verwaltet. Sie enden normalerweise in .Serviceerweiterung. Servicegefateien beschreiben, wie Sie einen Dienst starten, anhalten, neu laden und neu starten, und die Abhängigkeiten, die für die Verwaltung des Dienstes erforderlich sind.
  • .Ziel - Zieleinheiten geben während des Starts Synchronisierungspunkte für andere Dienste an.
  • .Scheibe - Slice Unit -Dateien codieren Informationen zu Systemd Slice -Einheiten. Slice -Einheiten sind Teil des Linux -Kontrollgruppenbaum. Weitere Informationen zur Systemd -Ressourcensteuerung finden Sie hier.
  • .Steckdose - Eine Socket-Einheitsdatei codiert Informationen zu Netzwerk-Socket, IPC oder einem Dateisystem FIFO-Puffer, das für systemd gesteuert und verwaltet wird, das SYLYD für Socket-basierte Aktivierung verwendet.
  • .Gerät - Konfigurationen der Geräteeinheit Definieren Sie eine Geräteeinheit, die im SYSFS/UDEV -Gerätebaum freigelegt ist.
  • .Timer - Timereinheiten definieren einen von Systemd verwalteten Timer und gesteuert von Systemd für die geplante Aktivierung.
  • .Schnappschuss - Snapshot -Einheitendateien ermöglichen die Rollback des aktuellen Status des Systems nach Änderungen. Wir erstellen sie mit dem Befehl systemd snapshot.
  • .Tausch - Swap -Einheiten codieren Informationen zum Swap -Speicherplatz, z. B. den Gerätenamen oder den Pfad des Swap -Raums.
  • .montieren - MOUNT -UNTAGE -Dateien codieren Informationen zu Mountspunkten im von Systemd verwalteten System.
  • .Automount - Dies sind Einheitsdateien, die Mountspunkte definieren, die automatisch montiert werden.

Dies sind einige der von Systemd verwalteten Einheitsdateien. In der Regel arbeiten diese Einheitsdateien in einem System eng zusammen, um System, Dienste, Dämonen und andere Ressourcen im System zu verwalten.

NOTIZ: Es gibt andere Einheitsdateien, aber Sie müssen sich nicht viel um sie kümmern, es sei denn, Sie tauchen tief in den Kernel ein.

Listen Sie Einheitsdateien auf

Um die im System verfügbaren Einheitsdateien anzuzeigen, können Sie die Dateien in/lib/systemd/system oder/etc/systemd/system auflisten.

Zum Glück hat Systemd einen Befehl dafür. Wir können den Befehl ausführen:

$ sudo systemCtl list-Einheiten

Durch Ausführen dieses Befehls werden die im System verfügbaren Einheiten angezeigt.

Um nur bestimmte Einheitsdateien zu filtern, können Sie die Option -typ = [Einheitstyp] verwenden. Zum Beispiel verwenden wir den Befehl, um Service -Einheiten -Dateien anzuzeigen:

$ sudo systemCTL List-Units --type = Service

Hier ist ein Beispielausgang:

Die Ausgabe aus dem Befehl systemCtl list-ungits verwendet eine spaltenbasierte Organisationsmethode.

Hier ist, was jede Spalte darstellt.

  • EINHEIT - Die erste Spalte ist die 'Einheit.'Dies zeigt den Namen der Einheitsdatei.
  • BELASTUNG - Dies zeigt, ob die Einheitsdefinition korrekt geladen wurde.
  • AKTIV - Dies zeigt den Aktivierungszustand auf hoher Ebene.
  • Sub - Dies zeigt den Aktivierungszustand auf niedriger Ebene. Die Werte in dieser Spalte hängen vom Einheitstyp ab.
  • BESCHREIBUNG - Die Beschreibung der Einheitsdatei.

Sie können die Einheiten auch nach ihren Staaten filtern. Verwenden Sie beispielsweise nur inaktive Einheiten, um den Befehl zu verwenden:

$ sudo systemctl list -units -state = inaktiv

Das obige zeigt inaktive (oder tote Sub-) Einheiten. Die meisten Einheiten in diesem Zustand werden vor den Benutzersitzungen gestartet. Dazu gehören Plymouth, Network Activations Service, Rettungsmodus, manuelles DB und viele mehr.

Um alle Einheitsdateien im System anzuzeigen, können Sie die Option für die Liste der Listeneinheiten anhängen.

$ sudo systemctl list -units -all

Sie können die Liste der verfügbaren Einheiten scrollen, indem Sie die Space -Taste drücken.

So anzeigen Inhalt der Einheitsdatei anzeigen

Um die Einträge und die Konfiguration in einer Einheitsdatei anzuzeigen.

Verwenden Sie beispielsweise den Inhalt der Plymouth -Einheit, um den Befehl zu verwenden

$ sudo systemctl cat plymouth

In diesem Befehl wird der Inhalt der Datei wie unten gezeigt abgelegt:

So bearbeiten Sie Einheitsdateien

Um Einheitsdateien zu bearbeiten, können Sie den Befehl systemd verwenden, gefolgt von der Option Bearbeitungsoption und dem Namen des Geräts.

$ sudo systemctl bearbeiten plymouth

Der Befehl startet den Nano -Texteditor, sodass Sie die angegebene Einheitsdatei bearbeiten können.

NOTIZ: Sofern nicht erforderlich, VERMEIDEN Bearbeiten kritischer Einheitendateien, die vom System bereitgestellt werden.

Verwalten von Diensten mit SystemCTL

Einheitsdateien, die mit enden .Der Service ist einfach zu verwalten mithilfe des Systemd -Dienstprogramms SystemCTL. Im Folgenden können wir mit SystemCTL ausgeführt werden.

So starten Sie Dienstleistungen

Um einen Dienst mit SystemCTL zu starten, rufen wir den Befehl an:

$ sudo systemctl starten nginx.Service

Im obigen Befehl haben wir Systemd mithilfe des NGINX -Dienstes mit dem Nginx -Dienst mitgeteilt.Serviceeinheitendatei.

Das Übergeben des vollständigen Einheitsdatei -Suffix mit SystemCTL ist keine Anforderung. Sie können den Namen des Dienstes verwenden, z. B.:

$ sudo systemctl starten nginx

In den meisten Serviceinheiten gibt es keine Ausgabe, wenn der Service erfolgreich beginnt. Wenn jedoch ein Fehler auftritt, zeigt Systemd den Fehler- und Statuscode an.

So stoppen Sie Dienstleistungen

Verwenden Sie das Stop -Argument im SystemCTL -Befehl, um einen Dienst zu stoppen

$ sudo systemctl stop nginx

In ähnlicher Weise liefert der Stoppbetrieb nach erfolgreicher Fertigstellung keine Ausgabe.

So laden Sie Dienste neu

Das Nachladen eines Dienstes funktioniert, indem die Arbeitsprozesse gestoppt werden, Konfigurationsänderungen anwenden und die Arbeitsprozesse neu starten. Das schließt den tatsächlichen Dienst nicht selbst ab.

Diese Funktion kann hilfreich sein, wenn Dienste online sein müssen, wie dies bei Datenbanken und Webservern der Fall ist.

Um einen Dienst in SystemCTL neu zu laden, verwenden wir den Befehl:

$ sudo systemctl reload nginx

So starten Sie Dienstleistungen neu

Andererseits wird der Neustart den Service und die Arbeitsprozesse abgeschlossen und neu starten. Der Neustartprozess kann zu Ausfallzeiten führen, was es bei der Fehlerbehebung sehr anwendbar macht.

Verwenden Sie den Befehl, um einen Dienst neu zu starten:

$ sudo systemctl starten nginx neu

So aktivieren Sie Dienste am Boot

Wenn Sie möchten, dass ein bestimmter Dienst während des Systemstarts ausgeführt wird, können Sie den Befehl aktivieren.

Zum Beispiel:

$ sudo systemctl aktivieren nginx

Der obige Befehl ermöglicht den Dienst jedoch nicht während einer aktiven Sitzung. Fügen Sie dazu die Flag -now hinzu.

$ sudo systemctl aktivieren nginx -jetzt

Wenn Sie einen benutzerdefinierten Dienst aktivieren möchten, den Sie erstellt haben, stellen Sie sicher, dass Systemd auf die Einheitsdatei zugreifen kann. Speichern Sie die Einheitsdatei in /Home -Verzeichnis nicht. Stellen Sie für benutzerdefinierte Einheitsdateien sicher, dass Sie sie in/etc/systemd/system platzieren.

So überprüfen Sie den Service -Status

Verwenden Sie den Statusbefehl, um den Status eines Dienstes in SystemD zu überprüfen:

$ sudo systemctl Status nginx

Dieser Befehl zeigt den aktuellen Status des Dienstes an. Das Bild unten zeigt einen aktiven Nginx -Dienst

Wenn ein Dienst gestoppt wird, erhalten Sie eine ähnliche Ausgabe wie unten gezeigt:

Abschluss

In diesem Leitfaden haben wir die Konzepte von Systemd- und Einheitsdateien besprochen. Systemd ist ein kritischer Bestandteil von Linux, und wichtige Linux -Verteilungen haben nun seine Verwendung übernommen. Daher kann es sehr vorteilhaft sein, zu wissen, wie man verwaltet und verwaltet wird.