Comment lister les processus sous Linux : Un guide complet

LightNode
By LightNode ·

Introduction

Dans le système d'exploitation Linux, les processus sont des unités fondamentales d'exécution. Ils représentent des instances en cours d'exécution de programmes, y compris les tâches système, les applications utilisateur et les services en arrière-plan. Gérer et lister efficacement les processus est crucial pour les administrateurs système et les utilisateurs, car cela leur permet de surveiller les performances du système, diagnostiquer des problèmes et optimiser l'utilisation des ressources.

Comprendre comment lister et gérer les processus peut aider dans divers scénarios, tels que l'identification des applications gourmandes en ressources, le débogage de logiciels et la garantie de la stabilité et de la sécurité du système. Cet article fournit un guide complet sur les diverses commandes et outils disponibles sous Linux pour lister les processus, des commandes de base comme ps et top aux outils plus avancés comme pstree et lsof. À la fin de ce guide, vous serez équipé des connaissances nécessaires pour gérer efficacement les processus dans votre environnement Linux.

Commandes de base pour lister les processus

Commande ps

La commande ps est l'une des plus couramment utilisées pour lister les processus sous Linux. Elle fournit un instantané des processus actuels. Voici quelques utilisations et options de base :

  • ps : Affiche les processus pour le shell actuel.
  • ps -e ou ps -A : Liste tous les processus en cours d'exécution sur le système.
  • ps aux : Affiche des informations détaillées sur tous les processus, y compris ceux qui n'appartiennent pas à l'utilisateur.

Exemples d'utilisation :

ps
ps -e
ps aux

Commande top

La commande top est un outil puissant pour la surveillance en temps réel du système. Elle fournit une vue dynamique des processus du système, se mettant à jour périodiquement pour afficher les informations les plus récentes.

  • Exécutez top pour démarrer l'interface. Elle affiche l'utilisation du CPU, l'utilisation de la mémoire et d'autres statistiques système ainsi qu'une liste des processus.
  • Appuyez sur q pour quitter l'interface top.

Options courantes :

  • top -n 1 : Affiche la liste des processus une fois et quitte.
  • top -u [nom_utilisateur] : Affiche les processus pour un utilisateur spécifique.

Exemples d'utilisation :

top
top -n 1
top -u user

Commande htop

htop est un visualiseur de processus interactif offrant une interface plus conviviale et visuellement attrayante par rapport à top. Il permet de faire défiler la liste des processus horizontalement et verticalement, et fournit des informations colorées.

Pour utiliser htop :

  1. Installez-le (s'il n'est pas déjà installé) en utilisant votre gestionnaire de paquets :
    sudo apt-get install htop  # Pour les systèmes basés sur Debian
    sudo yum install htop      # Pour les systèmes basés sur Red Hat
    
  2. Exécutez htop en tapant simplement :
    htop
    

Commande pgrep

La commande pgrep est utilisée pour rechercher des processus en fonction de leur nom et d'autres attributs. Elle peut être particulièrement utile pour les scripts et l'automatisation.

Utilisation de base :

  • pgrep [motif] : Liste les identifiants de processus (PID) des processus correspondant au motif donné.
  • pgrep -u [nom_utilisateur] [motif] : Filtre les processus par utilisateur.

Exemples d'utilisation :

pgrep bash
pgrep -u root sshd

Techniques avancées de listing des processus

Commande pstree

La commande pstree affiche les processus sous forme d'arborescence, montrant la relation hiérarchique entre eux. Cela peut être particulièrement utile pour comprendre les relations parent-enfant entre les processus.

  • pstree : Affiche l'arborescence des processus pour tous les processus.
  • pstree -p : Inclut les identifiants de processus (PID) dans la sortie.
  • pstree [nom_utilisateur] : Affiche l'arborescence des processus pour un utilisateur spécifique.

Exemples d'utilisation :

pstree
pstree -p
pstree root

Commande lsof

La commande lsof (list open files) liste les informations sur les fichiers ouverts par les processus. Cela est utile pour identifier quels processus utilisent des fichiers ou des ports spécifiques.

Utilisation de base :

  • lsof : Liste tous les fichiers ouverts.
  • lsof -u [nom_utilisateur] : Affiche les fichiers ouverts par un utilisateur spécifique.
  • lsof [fichier] : Liste les processus qui ont ouvert un fichier particulier.
  • lsof -i :[port] : Liste les processus utilisant un port réseau spécifique.

Exemples d'utilisation :

lsof
lsof -u root
lsof /var/log/syslog
lsof -i :80

Commande pidstat

La commande pidstat fournit des statistiques sur les tâches (processus) Linux telles que l'utilisation du CPU, l'utilisation de la mémoire et les statistiques d'I/O.

Utilisation de base :

  • pidstat : Affiche l'utilisation du CPU pour les tâches.
  • pidstat -r : Affiche l'utilisation de la mémoire.
  • pidstat -d : Affiche les statistiques d'I/O.

Exemples d'utilisation :

pidstat
pidstat -r
pidstat -d

Commande watch

La commande watch exécute périodiquement un programme, affichant la sortie dans le terminal. Elle est utile pour observer les changements dans la sortie des commandes au fil du temps.

Utilisation de base :

  • watch [commande] : Exécute la commande spécifiée à intervalles réguliers (par défaut toutes les 2 secondes).
  • watch -n [intervalle] [commande] : Spécifie un intervalle différent.

Exemples d'utilisation :

watch ps -e
watch -n 5 netstat -tuln

Exemples pratiques

Surveillance des performances du système

Surveiller les performances du système est crucial pour maintenir un système sain et réactif. Les commandes top et htop sont particulièrement utiles à cette fin.

Utilisation de top pour la surveillance des performances

top fournit une vue en temps réel des processus du système et de leur utilisation des ressources. Il aide à identifier les processus consommant excessivement le CPU ou la mémoire.

Exemple d'utilisation :

top

Dans l'interface top :

  • La colonne PID affiche l'identifiant du processus.
  • La colonne %CPU affiche le pourcentage d'utilisation du CPU.
  • La colonne %MEM affiche le pourcentage d'utilisation de la mémoire.

Utilisation de htop pour la surveillance des performances

htop offre une interface interactive améliorée par rapport à top. Il permet de trier les processus, de rechercher des processus spécifiques et de tuer des processus directement depuis l'interface.

Exemple d'utilisation :

htop

Dans l'interface htop :

  • Utilisez les touches fléchées pour naviguer dans la liste des processus.
  • Appuyez sur F3 pour rechercher un processus spécifique.
  • Appuyez sur F9 pour tuer un processus sélectionné.

Gestion des processus spécifiques

Gérer des processus spécifiques implique de les trouver à l'aide de commandes comme ps et pgrep, puis de prendre des mesures appropriées telles que l'envoi de signaux.

Utilisation de ps et pgrep pour trouver des processus

Pour trouver des processus par nom ou par d'autres attributs, ps et pgrep sont très efficaces.

Exemple d'utilisation avec ps :

ps aux | grep apache2

Exemple d'utilisation avec pgrep :

pgrep apache2

Envoi de signaux aux processus

Une fois que vous avez identifié l'identifiant du processus (PID), vous pouvez gérer le processus en utilisant des signaux. La commande kill envoie des signaux aux processus, et la commande killall envoie des signaux à tous les processus correspondant à un nom.

  • kill [PID] : Envoie le signal par défaut (SIGTERM) pour terminer le processus.
  • kill -9 [PID] : Envoie le signal SIGKILL pour terminer de force le processus

.

  • killall [nom_processus] : Envoie le signal par défaut à tous les processus portant le nom spécifié.

Exemples d'utilisation :

kill 1234
kill -9 1234
killall apache2

Identification des fichiers ouverts et des connexions réseau

En utilisant la commande lsof, vous pouvez identifier quels fichiers et quelles connexions réseau sont utilisés par des processus spécifiques. Cela peut aider à diagnostiquer des problèmes tels que les verrous de fichiers ou les conflits de ports réseau.

Exemples d'utilisation :

lsof /var/log/syslog
lsof -i :80

Affichage des arbres de processus

La commande pstree vous permet de visualiser les relations parent-enfant entre les processus. Cela est utile pour comprendre les hiérarchies et les dépendances des processus.

Exemple d'utilisation :

pstree

Lister les processus sous Linux

FAQ

Qu'est-ce qu'un processus sous Linux ?

Un processus sous Linux est une instance d'un programme en cours d'exécution. Il inclut le code du programme, son activité actuelle et les ressources associées telles que la mémoire, les descripteurs de fichiers et les attributs de sécurité. Les processus sont fondamentaux pour le système d'exploitation Linux et permettent le multitâche en permettant à plusieurs programmes de s'exécuter simultanément.

Comment puis-je lister tous les processus en cours d'exécution sous Linux ?

Pour lister tous les processus en cours d'exécution, vous pouvez utiliser la commande ps avec les options appropriées :

ps -e

ou

ps aux

Vous pouvez également utiliser les commandes top ou htop pour une vue en temps réel.

Quelle est la différence entre top et htop ?

top est un outil en ligne de commande qui fournit une vue en temps réel des processus du système et de l'utilisation des ressources. htop est une version améliorée de top avec une interface interactive plus conviviale. htop permet de faire défiler la liste des processus, de rechercher des processus spécifiques et de tuer des processus directement depuis l'interface.

Comment puis-je trouver un processus spécifique par nom ?

Vous pouvez utiliser la commande pgrep pour rechercher des processus par nom :

pgrep nom_processus

Par exemple, pour trouver tous les processus avec "apache2" dans leur nom :

pgrep apache2

Comment puis-je tuer un processus sous Linux ?

Pour tuer un processus, identifiez d'abord son identifiant de processus (PID) en utilisant des commandes comme ps, top ou pgrep. Ensuite, utilisez la commande kill suivie du PID :

kill PID

Si le processus ne se termine pas avec le signal par défaut, vous pouvez utiliser l'option -9 pour le tuer de force :

kill -9 PID

Comment afficher un arbre hiérarchique des processus ?

Vous pouvez utiliser la commande pstree pour afficher un arbre hiérarchique des processus :

pstree

Pour inclure les identifiants de processus dans l'arbre, utilisez :

pstree -p

Comment lister les fichiers ouverts et les processus qui les ont ouverts ?

La commande lsof liste les informations sur les fichiers ouverts par les processus. Pour lister tous les fichiers ouverts, exécutez simplement :

lsof

Pour voir quel processus utilise un fichier spécifique :

lsof /chemin/vers/fichier

Comment surveiller les performances du système au fil du temps ?

Vous pouvez utiliser la commande watch pour exécuter une commande spécifiée périodiquement et afficher sa sortie. Par exemple, pour surveiller tous les processus en cours d'exécution toutes les 2 secondes :

watch ps -e

Comment obtenir des statistiques détaillées sur l'utilisation du CPU, de la mémoire et des E/S par les processus ?

La commande pidstat fournit des statistiques détaillées sur l'utilisation du CPU, de la mémoire et des E/S par les processus. Pour afficher les statistiques d'utilisation du CPU :

pidstat

Pour afficher les statistiques d'utilisation de la mémoire :

pidstat -r

Pour afficher les statistiques d'E/S :

pidstat -d

Que faire si un processus ne répond pas ?

Si un processus ne répond pas, vous pouvez essayer de le terminer en utilisant la commande kill avec son PID. S'il ne se termine toujours pas, utilisez la commande kill -9 pour le tuer de force :

kill -9 PID

Assurez-vous que tuer le processus n'affectera pas négativement votre système ou des tâches critiques.