GNU/Linux >> Tutoriels Linux >  >> Linux

Vérifier les services en cours d'exécution sous Linux

Lorsque vous devez dépanner un service réseau, la première étape consiste à vous assurer que le service est en cours d'exécution.

Si le service a un script d'initialisation (init) installé, vous pouvez utiliser le service commande pour démarrer, arrêter et vérifier l'état du service. Cette commande fait référence à un service en utilisant son script d'initialisation, qui est stocké dans le /etc/init.d répertoire pour les distributions basées sur Debian® et le etc/rc.d/init.d répertoire pour les distributions basées sur Red Hat®.

Si vous ne connaissez pas le nom que le système utilise pour un service, vérifiez l'un des répertoires précédents en utilisant le ls commande suivie du nom du répertoire. Certains noms varient en fonction de votre distribution. Par exemple, Apache® est httpd sur CentOS® et apache2 sur le système d'exploitation Ubuntu®.

Remarque  :De nombreuses distributions Linux® plus récentes utilisent systemd au lieu de netstat pour vérifier les services. Si vous utilisez systemd , remplacez tous les service <service-name> <status> commandes avec systemct1 <status> <service-name> .Pour plus d'informations sur systemct1 commandes, consultez la feuille de triche Fedora™SysVinit to Systemd.

Vérifier l'état du service

Un service peut avoir l'un des statuts suivants :

  • start :Le service a démarré.
  • stop  :Le service a cessé de fonctionner.
  • restart  :Le service redémarre et démarrera une fois le processus terminé.

L'exemple suivant montre comment vérifier l'état de httpd sur CentOSen utilisant le service commande :

$ sudo service httpd status
httpd is stopped

Démarrer le service

Si un service ne fonctionne pas, vous pouvez utiliser le service commande pour le démarrer. L'exemple suivant démarre le httpd service :

$ sudo service httpd start
Starting httpd:                                            [  OK  ]

Si l'application ne peut pas démarrer, le système signale l'échec et affiche généralement un message indiquant la cause du problème.

$ 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]

Utiliser netstat pour trouver les conflits de ports

Dans l'exemple précédent, httpd ne peut pas être démarré car quelque chose est déjà à l'écoute sur le port. Pour savoir ce qui écoute, vous pouvez exécuter le netstat commande.

Exécutez la commande suivante pour afficher une liste des programmes d'écoute et des ports qu'ils utilisent :

# 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

La sortie montre que le nc programme (qui apparaît dans le champ Program name colonne) écoute sur le port 80 (qui apparaît dans l'Local Address colonne). L'arrêt de ce programme devrait activer httpd à démarrer.

Remarque :Pour plus d'informations sur le netstat commande, voir Vérifier les ports d'écoute avec netstat.

Vérifier l'état de xinetd

Si le service ne fonctionne pas, c'est peut-être parce qu'un super-serveur tel qu'un démon de service Internet étendu (xinetd ) est utilisé pour lancer le programme lorsqu'une connexion est reçue. Si tel est le cas, le démarrage du service a peut-être résolu le problème. Exécutez la commande suivante pour vérifier que le problème est résolu :

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

Vérifier les journaux

Si vous ne pouvez pas démarrer votre service, consultez vos journaux pour voir s'ils contiennent des informations sur le problème.

Étapes suivantes

Une fois que vous êtes sûr que l'application est en cours d'exécution, vérifiez les ressources du serveur pour vérifier combien votre application consomme.


Linux
  1. Service du système d'exploitation Linux "dhcpd"

  2. Service d'exploitation Linux "anacron"

  3. Service d'exploitation Linux "iptables"

  4. Service de système d'exploitation Linux "réseau"

  5. Service d'exploitation Linux "portmap"

Liste des services Linux avec Systemctl

Comment vérifier tous les services en cours d'exécution sous Linux

Service du système d'exploitation Linux "nfs"

Service du système d'exploitation Linux 'microcode_ctl'

Service d'exploitation Linux "hplip"

Comment vérifier si un service particulier est en cours d'exécution sur Ubuntu