Comment vérifier si un service est actif sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier l'état des services en cours d'exécution sur un système Linux. Nous explorerons différentes méthodes, en commençant par la commande moderne systemctl status, en comprenant sa sortie et son importance même dans les environnements où l'exécution directe est limitée.

Ensuite, vous apprendrez à utiliser la commande plus ancienne mais toujours pertinente service pour confirmer l'état d'un service et, enfin, à vérifier le processus en cours d'exécution associé à un service à l'aide de la commande ps aux. Cette expérience pratique vous dotera des compétences essentielles pour surveiller et gérer les services sous Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") subgraph Lab Skills linux/echo -.-> lab-558679{{"Comment vérifier si un service est actif sous Linux"}} linux/grep -.-> lab-558679{{"Comment vérifier si un service est actif sous Linux"}} linux/ps -.-> lab-558679{{"Comment vérifier si un service est actif sous Linux"}} linux/service -.-> lab-558679{{"Comment vérifier si un service est actif sous Linux"}} end

Vérifier l'état d'un service à l'aide de systemctl status

Dans cette étape, vous apprendrez à vérifier l'état des services système à l'aide de la commande systemctl. Les services sont des programmes en arrière-plan qui s'exécutent sur votre système, comme les serveurs web, les serveurs de base de données ou les démons réseau.

Bien que vous ne puissiez pas utiliser directement systemctl dans cet environnement LabEx spécifique (en raison de son exécution dans un conteneur Docker), il est essentiel de comprendre son fonctionnement pour gérer les services sur un véritable système Linux. Nous allons simuler le concept et vous montrer l'utilisation typique de la commande.

Sur un système Linux standard utilisant systemd (ce qui est courant dans les distributions modernes comme Ubuntu), vous utiliseriez systemctl status suivi du nom du service pour vérifier si un service est en cours d'exécution, actif ou en échec.

Par exemple, pour vérifier l'état du service ssh (qui gère les connexions distantes sécurisées), vous exécuteriez généralement :

systemctl status ssh

La sortie ressemblerait à ceci (les détails exacts peuvent varier) :

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since ...
       Docs: man:sshd(8)
             man:ssh(1)
   Main PID: ... (sshd)
      Tasks: ... (limit: ...)
     Memory: ...
        CPU: ...
     CGroup: /system.slice/ssh.service
             └─... /usr/sbin/sshd -D

...

Points clés à rechercher dans la sortie :

  • Loaded : Indique si la configuration du service a été chargée correctement.
  • Active : Indique l'état actuel du service (par exemple, active (running), inactive (dead), failed).
  • Main PID : L'identifiant de processus du processus principal du service.

Même si vous ne pouvez pas exécuter systemctl ici, il est important de connaître cette commande pour gérer les services sur d'autres systèmes Linux.

Pour simuler la vérification de l'état d'un service et pratiquer l'exécution de commandes, utilisons à nouveau echo pour afficher un message indiquant que vous avez appris à utiliser systemctl status.

Tapez la commande suivante dans votre terminal :

echo "Learned about systemctl status"

Appuyez sur Entrée.

Cette commande confirme simplement que vous avez lu et compris le concept d'utilisation de systemctl status.

Cliquez sur Continuer pour passer à l'étape suivante.

Confirmer l'état d'un service via la sortie de la commande service

Dans cette étape, vous allez apprendre à connaître une autre commande utilisée pour gérer les services, la commande service. Cette commande est souvent utilisée sur les systèmes qui n'utilisent pas systemd ou pour assurer la compatibilité avec les anciens systèmes d'initialisation (init systems).

La commande service offre une interface plus simple pour démarrer, arrêter, redémarrer et vérifier l'état des services.

La syntaxe de base pour vérifier l'état d'un service à l'aide de la commande service est la suivante :

service <service-name> status

De même que pour systemctl, vous remplacerez <service-name> par le nom réel du service que vous souhaitez vérifier.

Par exemple, sur un système où le serveur web apache2 est installé et géré par la commande service, vous vérifierez son état comme ceci :

service apache2 status

La sortie indiquera généralement si le service est en cours d'exécution ou non.

Encore une fois, bien que vous ne puissiez pas exécuter directement cette commande dans cet environnement LabEx en raison de sa nature conteneurisée, il est utile de comprendre la commande service pour travailler avec différents systèmes Linux.

Pour confirmer que vous avez appris à connaître la commande service, utilisez la commande echo pour afficher un message de confirmation.

Tapez la commande suivante dans votre terminal :

echo "Understood service command"

Appuyez sur Entrée.

Cette action marque le fait que vous avez terminé cette étape et appris à connaître la commande service.

Cliquez sur Continuer pour passer à l'étape suivante.

Vérifier les processus d'un service en cours d'exécution avec ps aux

Dans cette étape, vous apprendrez à vérifier si un service est en cours d'exécution en recherchant ses processus associés à l'aide de la commande ps aux. C'est un moyen fondamental de voir quels programmes sont actuellement en exécution sur votre système.

La commande ps affiche un instantané des processus en cours. Les options aux sont couramment utilisées pour afficher les processus de tous les utilisateurs (a), y compris ceux qui ne sont pas attachés à un terminal (x), et pour afficher des informations détaillées dans un format convivial pour l'utilisateur (u).

Quand un service est en cours d'exécution, il est généralement associé à un ou plusieurs processus. Vous pouvez utiliser ps aux et rediriger sa sortie vers grep pour filtrer les processus liés à un service spécifique.

Par exemple, pour voir s'il existe des processus liés au service ssh, vous utiliseriez :

ps aux | grep ssh

Essayons cela dans notre environnement LabEx. Nous savons que le terminal lui-même est un processus en cours d'exécution. Utilisons ps aux pour trouver le processus de notre shell zsh.

Tapez la commande suivante dans votre terminal :

ps aux | grep zsh

Appuyez sur Entrée.

Vous devriez voir une sortie similaire à ceci :

labex       ...  ...  ...  ... ?        Ss   ... ...:.. /usr/bin/zsh
labex       ...  ...  ...  ... ?        S+   ... ...:.. grep --color=auto zsh

La première ligne montre le processus zsh (votre shell de terminal), et la deuxième ligne montre la commande grep que vous venez d'exécuter (qui est aussi un processus !).

Cette méthode (ps aux | grep <service-name>) est un moyen puissant de confirmer si un service est réellement en cours d'exécution en vérifiant ses processus actifs, surtout lorsque les commandes systemctl ou service ne sont pas disponibles ou ne fournissent pas assez de détails.

Pour terminer cette étape, utilisez echo pour confirmer que vous avez pratiqué l'utilisation de ps aux avec grep.

Tapez la commande suivante :

echo "Practiced ps aux with grep"

Appuyez sur Entrée.

Cliquez sur Continuer pour terminer le laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier l'état des services sous Linux en utilisant diverses méthodes. Vous avez été présenté à la commande systemctl status, qui est la méthode standard pour vérifier l'état des services sur les systèmes Linux modernes utilisant systemd, bien que l'exécution directe ait été simulée en raison de l'environnement du laboratoire. Vous avez également appris à confirmer l'état d'un service en utilisant la commande plus ancienne service et à vérifier les processus d'un service en cours d'exécution en examinant la liste des processus avec ps aux. Ces étapes fournissent une approche complète pour déterminer si un service spécifique est actif et en cours d'exécution sur un système Linux.