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

Überprüfen Sie die laufenden Dienste unter Linux

Wenn Sie Probleme mit einem Netzwerkdienst beheben müssen, müssen Sie zunächst sicherstellen, dass der Dienst ausgeführt wird.

Wenn für den Dienst ein Initialisierungsskript (init) installiert ist, können Sie den service verwenden Befehl zum Starten, Stoppen und Überprüfen des Status des Dienstes. Dieser Befehl verweist auf einen Dienst, indem er sein Init-Skript verwendet, das in /etc/init.d gespeichert ist Verzeichnis für Debian®-basierte Distributionen und etc/rc.d/init.d Verzeichnis für Red Hat®-basierte Distributionen.

Wenn Sie den Namen, den das System für einen Dienst verwendet, nicht kennen, überprüfen Sie eines der vorangehenden Verzeichnisse mithilfe von ls Befehl gefolgt vom Verzeichnisnamen. Einige Namen variieren je nach Distribution. Apache® ist beispielsweise httpd auf CentOS® und apache2 auf dem Betriebssystem Ubuntu®.

Hinweis :Viele neuere Linux®-Distributionen verwenden systemd statt netstat Dienstleistungen zu überprüfen. Wenn Sie systemd verwenden , ersetzen Sie allservice <service-name> <status> Befehle mit systemct1 <status> <service-name> .Weitere Informationen zu systemct1 Befehle finden Sie im Fedora™SysVinit to Systemd Cheatsheet.

Überprüfen Sie den Dienststatus

Ein Dienst kann einen der folgenden Status haben:

  • start :Der Dienst wurde gestartet.
  • stop :Der Dienst läuft nicht mehr.
  • restart :Der Dienst wird neu gestartet und nach Abschluss des Vorgangs gestartet.

Das folgende Beispiel zeigt, wie der Status von httpd geprüft wird auf CentOS, indem Sie den service verwenden Befehl:

$ sudo service httpd status
httpd is stopped

Dienst starten

Wenn ein Dienst nicht ausgeführt wird, können Sie den service verwenden Befehl, um es zu starten. Das folgende Beispiel startet den httpd Dienst:

$ sudo service httpd start
Starting httpd:                                            [  OK  ]

Wenn die Anwendung nicht gestartet werden kann, meldet das System den Fehler und zeigt normalerweise eine Meldung an, die die Ursache des Problems angibt.

$ sudo service httpd start
Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
[FAILED]

Verwenden Sie netstat, um Portkonflikte zu finden

Im vorherigen Beispiel httpd kann nicht gestartet werden, da bereits etwas am Port lauscht. Um herauszufinden, was zuhört, können Sie netstat ausführen Befehl.

Führen Sie den folgenden Befehl aus, um eine Liste der lauschenden Programme und der von ihnen verwendeten Ports anzuzeigen:

# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 10.176.77.113:3306          0.0.0.0:*                   LISTEN      28509/mysqld
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      2113/nc
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1115/master
tcp        0      0 :::22                       :::*                        LISTEN      1051/sshd

Die Ausgabe zeigt, dass der nc Programm (das im Program name erscheint Spalte) lauscht auf Port 80 (der in der Local Address erscheint Säule). Das Beenden dieses Programms sollte httpd aktivieren gestartet werden.

Hinweis :Weitere Informationen zu netstat Befehl finden Sie unter Überwachungsports mit netstat überprüfen.

xinetd-Status prüfen

Wenn der Dienst nicht ausgeführt wird, kann dies daran liegen, dass ein Superserver wie ein Extended Internet Service Daemon (xinetd ) wird verwendet, um das Programm zu starten, wenn eine Verbindung empfangen wird. Wenn dies der Fall ist, hat das Starten des Dienstes das Problem möglicherweise behoben. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob das Problem behoben ist:

$ sudo service xinetd status
xinetd (pid  8795) is running...

Protokolle prüfen

Wenn Sie Ihren Dienst nicht starten können, überprüfen Sie Ihre Protokolle, um festzustellen, ob sie Informationen zu dem Problem enthalten.

Nächste Schritte

Nachdem Sie sicher sind, dass die Anwendung ausgeführt wird, überprüfen Sie die Serverressourcen, um festzustellen, wie viel Ihre Anwendung verbraucht.


Linux
  1. So listen Sie Systemd-Dienste unter Linux auf

  2. Linux-Betriebssystemdienst „iptables“

  3. Linux-Betriebssystemdienst „Netzwerk“

  4. Linux-Betriebssystemdienst „portmap“

  5. Linux-Betriebssystemdienst „auditd“

Auflisten von Linux-Diensten mit Systemctl

So überprüfen Sie alle laufenden Dienste in Linux

Linux-Betriebssystemdienst „dhcpd“

Linux-Betriebssystemdienst „anacron“

Linux-Betriebssystemdienst „hplip“

So überprüfen Sie, ob ein bestimmter Dienst unter Ubuntu ausgeführt wird