Comment lister les processus sous Linux : Un guide complet
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
oups -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'interfacetop
.
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
:
- 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
- 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
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.