GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Auflisten von Linux-Diensten mit Systemctl

Unter Linux ist ein Dienst ein Programm, das im Hintergrund ausgeführt wird. Dienste können bei Bedarf oder beim Booten gestartet werden.

Wenn Sie Linux als primäres Betriebssystem oder Entwicklungsplattform verwenden, werden Sie mit verschiedenen Diensten wie Webserver, SSH oder Cron zu tun haben. Zu wissen, wie man laufende Dienste auflistet oder den Dienststatus überprüft, ist beim Debuggen von Systemproblemen wichtig.

Die meisten neueren Linux-Distributionen verwenden systemd als Standard-Init-System und Service-Manager.

Systemd ist eine Suite von Tools zur Verwaltung von Linux-Systemen. Es wird verwendet, um die Maschine hochzufahren, Dienste zu verwalten, Dateisysteme automatisch zu mounten, Ereignisse zu protokollieren, Hostnamen einzurichten und andere Systemaufgaben.

Dieser Artikel erklärt, wie man Dienste unter Linux auflistet.

Linux-Dienste auflisten #

Systemd verwendet das Konzept von Einheiten, die Dienste, Sockets, Einhängepunkte, Geräte usw. sein können. Einheiten werden mithilfe von Textdateien in ini definiert Format. Diese Dateien enthalten Informationen über das Gerät, seine Einstellungen und auszuführende Befehle. Die Dateinamenerweiterungen definieren den Unit-Dateityp. Beispielsweise haben Einheitendateien für Systemdienste einen .service Erweiterung.

systemctl ist ein Befehlszeilendienstprogramm, das zum Steuern von systemd und zum Verwalten von Diensten verwendet wird. Es ist Teil des systemd-Ökosystems und standardmäßig auf allen Systemen verfügbar.

Geben Sie Folgendes ein, um eine Liste aller geladenen Diensteinheiten zu erhalten:

sudo systemctl list-units --type service
UNIT          LOAD      ACTIVE SUB     DESCRIPTION                                                              
cron.service  loaded    active running Regular background program processing daemon 
...

Jede Ausgabezeile enthält die folgenden Spalten von links nach rechts:

  • UNIT - Der Name der Serviceeinheit.
  • LOAD - Information, ob die Unit-Datei in den Speicher geladen wurde.
  • ACTIVE - Der High-Level-Unit-Dateiaktivierungsstatus, der aktiv, neu ladend, inaktiv, fehlgeschlagen, aktivierend, deaktivierend sein kann. Es ist eine Verallgemeinerung des SUB Spalte.
  • SUB - Der Low-Level-Unit-Dateiaktivierungsstatus. Der Wert dieses Feldes hängt vom Gerätetyp ab. Beispielsweise kann eine Einheit vom Typ Dienst einen der folgenden Zustände aufweisen:„Dead“, „Exited“, „Failed“, „Inactive“ oder „Running“.
  • DESCRIPTION - Kurze Beschreibung der Unit-Datei.

Standardmäßig listet der Befehl nur die geladenen aktiven Einheiten auf. Um auch geladene, aber inaktive Einheiten zu sehen, übergeben Sie --all Möglichkeit:

sudo systemctl list-units --type service --all

Wenn Sie alle installierten Unit-Dateien sehen möchten, nicht nur die geladenen, verwenden Sie:

sudo systemctl list-unit-files

Dienststatus wird angezeigt #

Um den Status eines Dienstes zu überprüfen, verwenden Sie den systemctl status Befehl:

sudo systemctl status <service_name>.service

Wobei <service_name> ist der Name der Serviceeinheit, die Sie überprüfen möchten. Um beispielsweise den aktuellen Status des nginx-Dienstes zu ermitteln, würden Sie Folgendes ausführen:

sudo systemctl status nginx.service
Das Suffix „.service“ können Sie weglassen. systemctl status nginx ist dasselbe wie systemctl status nginx.service .
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-12-23 19:13:50 UTC; 5s ago
       Docs: man:nginx(8)
    Process: 3061052 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 3061063 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 3061064 (nginx)
      Tasks: 2 (limit: 470)
     Memory: 6.0M
     CGroup: /system.slice/nginx.service
             ├─3061064 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─3061065 nginx: worker process

Dec 23 19:13:50 linuxize.dev systemd[1]: Starting A high performance web server and a reverse proxy server...

Der Befehl gibt die folgenden Informationen aus:

  • Loaded - Ob die Service-Unit geladen wurde und der vollständige Pfad zur Unit-Datei. Es zeigt auch, ob das Gerät zum Starten beim Booten aktiviert ist.
  • Active - Ob der Dienst aktiv ist und ausgeführt wird. Wenn Ihr Terminal Farben unterstützt und der Dienst aktiv ist und ausgeführt wird, wird der Punkt ( ) und „aktiver (laufender)“ Teil werden grün gedruckt. Die Zeile zeigt auch an, wie lange der Dienst läuft.
  • Docs - Die Servicedokumentation.
  • Process - Informationen zu den Serviceprozessen.
  • Main PID - Die Dienst-PID.
  • Tasks - Die Anzahl der auf die Einheit entfallenden Aufgaben und das Aufgabenlimit.
  • Memory - Informationen über verbrauchten Speicher.
  • CGroup - Informationen über verwandte Kontrollgruppen.

Wenn Sie nur den Dienststatus überprüfen möchten, verwenden Sie den systemctl is-active Befehl. Um beispielsweise zu überprüfen, ob der nginx-Dienst ausgeführt wird, würden Sie Folgendes ausführen:

systemctl is-active nginx.service
active

Der Befehl zeigt Ihnen den Dienststatus an. Wenn der Dienst aktiv ist, gibt der Befehl einen Exit-Status von 0 zurück, was nützlich sein kann, wenn der Befehl in Shell-Skripten verwendet wird.

Schlussfolgerung #

Wir haben Ihnen gezeigt, wie Sie das systemctl verwenden Befehl, um Linux-Dienste aufzulisten und ihren Status zu überprüfen.


Linux
  1. Befehls-Tutorial für Linux-Dienste für Anfänger (mit Beispielen)

  2. So verwalten Sie Systemd-Dienste mit Systemctl unter Linux

  3. Portumleitungen unter Linux mit ncat einrichten

  4. So verwenden Sie den Systemctl-Befehl zum Verwalten von Systemd-Diensten

  5. So verwalten Sie Linux-Dienste mit dem Befehl systemctl

So listen Sie Startdienste beim Booten in Linux auf

So starten Sie Netzwerkdienste unter Linux neu

Listendienste auf Ubuntu 20.04

Erste Schritte mit systemctl

So verwenden Sie systemctl unter Linux

Linux-chkconfig-Befehl mit Beispielen