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.
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.
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.