Comment vérifier si un processus est en cours d'exécution 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 les compétences de base en Linux pour la gestion et la surveillance des processus. Vous allez explorer comment lister tous les processus en cours d'exécution sur votre système à l'aide de la commande ps aux, qui fournit un instantané des processus actuels avec des informations détaillées telles que l'utilisateur, le PID (identifiant de processus), l'utilisation du CPU et de la mémoire.

En outre, vous découvrirez comment trouver efficacement des processus spécifiques à l'aide de la commande pgrep et vous aurez des informations sur l'activité des processus en temps réel et la consommation de ressources en utilisant la commande top. Ces techniques sont essentielles pour l'administration système, la résolution de problèmes et la compréhension des performances du système.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/ProcessManagementandControlGroup(["Process Management and Control"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/ProcessManagementandControlGroup -.-> linux/kill("Process Terminating") linux/ProcessManagementandControlGroup -.-> linux/pkill("Pattern-Based Killing") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") subgraph Lab Skills linux/kill -.-> lab-558747{{"Comment vérifier si un processus est en cours d'exécution sous Linux"}} linux/pkill -.-> lab-558747{{"Comment vérifier si un processus est en cours d'exécution sous Linux"}} linux/ps -.-> lab-558747{{"Comment vérifier si un processus est en cours d'exécution sous Linux"}} linux/top -.-> lab-558747{{"Comment vérifier si un processus est en cours d'exécution sous Linux"}} end

Lister les processus en cours d'exécution avec ps aux

Dans cette étape, vous apprendrez à afficher les processus actuellement en cours d'exécution sur votre système Linux à l'aide de la commande ps. Les processus ne sont rien d'autre que des programmes en cours d'exécution. Comprendre comment lister et identifier les processus est une compétence de base en administration système Linux et en résolution de problèmes.

La commande ps est utilisée pour afficher un instantané des processus actuels. Lorsqu'elle est utilisée avec certaines options, elle peut fournir de nombreuses informations détaillées.

Utilisons la commande ps avec les options aux. Ces options sont couramment utilisées ensemble pour afficher tous les processus en cours d'exécution sur le système dans un format convivial pour l'utilisateur.

  • a : Affiche tous les processus.
  • u : Affiche l'utilisateur et le propriétaire du processus.
  • x : Affiche les processus qui n'ont pas de terminal de contrôle (utile pour voir les processus en arrière - plan).

Ouvrez votre terminal s'il n'est pas déjà ouvert. Vous devriez être par défaut dans le répertoire ~/project.

Tapez la commande suivante et appuyez sur Entrée :

ps aux

Vous verrez une longue liste de processus, similaire à ceci (la sortie exacte variera) :

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.1  16840  9880 ?        Ss   Jul23   0:01 /sbin/init
root           2  0.0  0.0      0     0 ?        S    Jul23   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   Jul23   0:00 [rcu_gp]
...
labex      12345  0.1  0.5 123456 54321 pts/0    Ss   HH:MM   0:00 /usr/bin/zsh
labex      12367  0.0  0.1  21000  5000 pts/0    R+   HH:MM   0:00 ps aux
...

Décortiquons les colonnes que vous voyez :

  • USER : L'utilisateur propriétaire du processus.
  • PID : L'identifiant de processus (Process ID), un nombre unique pour chaque processus en cours d'exécution.
  • %CPU : Le pourcentage de temps CPU utilisé par le processus.
  • %MEM : Le pourcentage de mémoire physique utilisé par le processus.
  • VSZ : Virtual Set Size, la quantité totale de mémoire virtuelle utilisée par le processus.
  • RSS : Resident Set Size, la quantité de mémoire physique utilisée par le processus.
  • TTY : Le terminal de contrôle du processus (le cas échéant). ? signifie qu'il n'y a pas de terminal de contrôle.
  • STAT : Le statut du processus (par exemple, R pour en cours d'exécution, S pour en attente, Z pour zombie).
  • START : L'heure à laquelle le processus a démarré.
  • TIME : Le temps CPU cumulé utilisé par le processus.
  • COMMAND : La commande qui a lancé le processus.

Parcourir cette sortie peut être écrasant. Dans l'étape suivante, vous apprendrez à filtrer cette sortie pour trouver des processus spécifiques.

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

Trouver un processus spécifique avec pgrep

Dans l'étape précédente, vous avez vu que ps aux peut générer une grande quantité de résultats. Souvent, vous ne voulez trouver qu'un processus spécifique. La commande pgrep est conçue à cet effet. Elle recherche des processus en fonction de leur nom et renvoie leurs identifiants de processus (PID - Process ID).

La syntaxe de base de pgrep est pgrep [options] pattern. Le pattern est généralement le nom du processus que vous recherchez.

Essayons de trouver le PID du processus zsh, qui est le shell que vous utilisez actuellement dans le terminal.

Tapez la commande suivante et appuyez sur Entrée :

pgrep zsh

Vous devriez voir un ou plusieurs nombres affichés dans le terminal. Ce sont les PID des processus zsh en cours d'exécution.

12345

(Le nombre exact sera différent pour vous).

Si vous souhaitez voir la commande complète associée au PID trouvé par pgrep, vous pouvez le combiner avec la commande ps. L'option -p de ps vous permet de spécifier un PID.

Trouvons la commande complète pour le processus zsh en utilisant son PID. Tout d'abord, exécutez pgrep zsh à nouveau pour obtenir le PID actuel. Supposons que le PID soit 12345 pour cet exemple (remplacez 12345 par le PID réel que vous obtenez).

Maintenant, utilisez ps -p suivi du PID :

ps -p 12345

Vous verrez une sortie similaire à ceci :

    PID TTY          TIME CMD
  12345 pts/0    00:00:00 zsh

Cela confirme que le PID 12345 correspond à la commande zsh.

pgrep est un moyen rapide de trouver le PID d'un processus lorsque vous connaissez son nom. Cela est particulièrement utile lorsque vous avez besoin du PID pour d'autres commandes, comme tuer un processus (que vous apprendrez dans un prochain laboratoire).

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

Surveiller les détails des processus avec la commande top

Dans cette étape, vous allez apprendre à utiliser la commande top, qui offre une vue dynamique et en temps réel des processus en cours d'exécution sur votre système. Alors que ps aux vous donne un instantané, top se met à jour en continu, vous montrant quels processus consomment le plus de CPU et de mémoire.

La commande top est très utile pour surveiller les performances du système et identifier les processus qui pourraient consommer des ressources excessives.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

top

Votre terminal affichera une liste de processus qui se met à jour en permanence. La sortie ressemble à ceci :

top - HH:MM:SS up  X days, HH:MM,  X users,  load average: X.XX, X.XX, X.XX
Tasks: XXX total,   X running, XXX sleeping,   X stopped,   X zombie
%Cpu(s):  X.X us,  X.X sy,  X.X ni, XX.X id,  X.X wa,  X.X hi,  X.X si,  X.X st
MiB Mem :  XXXX.X total,  XXXX.X free,  XXXX.X used,  XXX.X buff/cache
MiB Swap:  XXXX.X total,  XXXX.X free,  XXXX.X used. XXXX.X avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
  12345 labex     20   0  123456  54321  32100 S   0.1   0.5   0:00.10 zsh
  12367 labex     20   0   21000   5000   3000 R   0.0   0.1   0:00.05 top
  ...

Examinons les parties clés de la sortie de top :

  • Zone de synthèse (en haut) : Cette section affiche des informations de synthèse sur le système, notamment :

    • L'heure actuelle et le temps de fonctionnement du système.
    • Le nombre d'utilisateurs connectés.
    • La charge moyenne (nombre moyen de processus en attente d'exécution au cours des dernières 1, 5 et 15 minutes).
    • Le nombre total de tâches (processus) et leur état (en cours d'exécution, en attente, arrêté, zombie).
    • La répartition de l'utilisation du CPU (utilisateur, système, inactif, etc.).
    • L'utilisation de la mémoire (totale, libre, utilisée, tampon/mémoire cache).
    • L'utilisation de l'espace d'échange (swap).
  • Zone de liste des processus (en bas) : Cette section liste les processus individuels, triés par défaut par utilisation du CPU. Les colonnes sont similaires à celles de ps aux, mais top les met à jour en temps réel. Les colonnes clés incluent :

    • PID : Identifiant du processus.
    • USER : Propriétaire du processus.
    • %CPU : Pourcentage d'utilisation du CPU.
    • %MEM : Pourcentage d'utilisation de la mémoire.
    • COMMAND : Nom de la commande.

Pendant que top est en cours d'exécution, vous pouvez interagir avec lui en utilisant diverses touches :

  • Appuyez sur q pour quitter top.
  • Appuyez sur M pour trier la liste des processus par utilisation de la mémoire.
  • Appuyez sur P pour trier la liste des processus par utilisation du CPU (c'est le tri par défaut).
  • Appuyez sur k pour tuer un processus (vous serez invité à saisir le PID). Faites attention avec cette option !

Prenez un moment pour observer les processus et comment l'utilisation du CPU et de la mémoire change. Vous verrez le processus top lui - même en haut de la liste car il utilise activement le CPU pour mettre à jour l'affichage.

Une fois que vous avez fini d'explorer top, appuyez sur q pour quitter et revenir à l'invite de commande normale de votre terminal.

Cliquez sur Continuer pour terminer cette étape et le laboratoire.

Résumé

Dans ce laboratoire, vous avez appris les techniques fondamentales pour vérifier si un processus est en cours d'exécution sous Linux. Vous avez commencé par utiliser la commande ps aux pour lister tous les processus en cours d'exécution sur le système, en comprenant les différentes colonnes telles que USER, PID, %CPU et %MEM, qui fournissent un instantané de l'activité des processus.

Vous avez ensuite exploré comment trouver efficacement un processus spécifique en utilisant la commande pgrep, qui recherche des processus en fonction de leur nom ou d'autres attributs et renvoie leur identifiant de processus (PID - Process ID). Enfin, vous avez appris à surveiller les détails des processus en temps réel en utilisant la commande top, qui offre une vue dynamique de l'utilisation des ressources du système et des statistiques des processus individuels, vous permettant d'observer la consommation de CPU et de mémoire.