Menu Fermer

Utiliser la commande PS pour lister les processus sur Linux avec des exemples

Sur Linux, la commande PS affiche des informations sur les processus actifs dans le système.
Avec top, pstree, on l’utilise souvent dans un terminal en ligne de commandes pour obtenir des informations sur les processus utilisateur ou système.
Cela peut nous donner de nombreuses informations utiles sur ces processus, y compris leur PID (ID de processus), TTY, l’utilisateur exécutant une commande ou une application, etc.

Comme beaucoup de commandes Linux, la commande PS possède beaucoup d’options ce qui peut rendre son utilisation compliquée.

Dans ce tutoriel, je vous présente la commande PS, ses options et différents exemples d’utilisation.

Utiliser la commande PS : lister les processus sur Linux

Utiliser la commande PS pour lister les processus sur Linux

Utilisation basique et syntaxe de la commande PS

La syntaxe paraît simple puisque on utilise la commande avec ou sans options.
La principale difficulté est qu’il existe énormément d’options.

ps [OPTIONS]

Sans aucune option, ps n’affiche pas la liste complète des processus, ni beaucoup d’informations.
Ainsi on obtient :


root@linux:~# ps
  PID TTY          TIME CMD
11608 pts/0    00:00:00 sudo
11609 pts/0    00:00:00 su
11610 pts/0    00:00:00 bash
14326 pts/0    00:00:00 ps

Lister tous les processus en cours d’exécution

Il existe deux formes de syntaxes pour lister l’intégralité des processus avec ps, la forme UNIX et la forme BSD.

Avec la forme BSD, on obtient un peu plus d’informations sur les processus.
La syntaxe est :

ps aux
  • a – Processus de tous les utilisateurs
  • U – Afficher le format orienté utilisateur (affiche des informations supplémentaires sur les processus en cours d’exécution)
  • X – Liste des processus qui n’appartiennent à aucune TTY

Pour trier la sortie sur une colonne, par exemple l’utilisation mémoire :

ps aux --sort=-%mem

La syntaxe de la forme UNIX :

ps -ef
  • -e – Affiche les processus en cours d’exécution de tous les utilisateurs
  • -f – Affiche la liste complète du format (affiche des informations supplémentaires sur les processus d’exécution)

Comprendre et savoir lire la sortie de ps

Voici un descriptif des colonnes de la sortie PS (forme UNIX) :

La commande ps pour lister les processus en cours d'exécution sur Linux
  • PID – l’ID de processus. Habituellement, lors de l’exécution de la commande PS, les informations les plus importantes que l’utilisateur recherchent est le processus PID. Connaître le PID vous permet de tuer un processus de défaut de fonctionnement. Tty – le nom du terminal de contrôle du processus
  • TIME – L’heure cumulative du processeur du processus, illustrée en minutes et en secondes.
  • CMD – Le nom de la commande utilisée pour démarrer le processus.

Voici les explications de la sortie de la commande PS en forme BSD.
On retrouve le même type de colonne qu’avec la commande top.

La commande ps pour lister les processus en cours d'exécution sur Linux
  • USER – l’utilisateur qui exécute le processus.
  • %CPU – L’utilisation du processeur du processus.
  • %MEM – le pourcentage de la taille du réglage de résident du processus dans la mémoire physique de la machine.
  • VSZ – Taille de la mémoire virtuelle du processus en KIB.
  • RSS – la taille de la mémoire physique utilisée par le processus.
  • STAT – Le code d’état du processus, tel que Z (Zombie), S (Dormant) et R (en cours d’exécution). Démarrer – le moment où la commande a commencé.

L’option -o vous permet de filtrer la colonne pour n’afficher que celle désirée.
Par exemple pour n’afficher que les colonnes pid et comm :

ps -efo pid,comm
ps auxo pid,comm

Enfin bien entendu, vous pouvez aussi utiliser grep, sort pour filtrer ou trier les colonnes.

ps -ef | grep root

5 exemples d’utilisation de la commande PS

Je vous donne la plupart du temps les équivalents UNIX et BSD.

Afficher les processus avec l’arborescence

ps -ejH
ps axjf

Notez que vous pouvez utiliser aussi la commande pstree.

Obtenir les informations sur les threads

L’option -f affiche une liste complète au format.
Cette option peut être combinée à de nombreuses autres options de style UNIX pour ajouter des colonnes supplémentaires. Il provoque également l’imprimé des arguments de commande.
Lorsqu’il est utilisé avec -l, le NLWP (nombre de threads) et les colonnes LWP (ID de thread) seront ajoutées.

ps -eLf
ps axms

Nous pouvons simplement exécuter PS pour énumérer les threads dans l’état R,D :

ps -eo s,pid,cmd,user | grep ^[RD] | sort | uniq -c | sort -nbr | head -20
ps : Vérifier les activités des processus pour trouver la source du load average élevé

Afficher l’utilisation CPU ou mémoire des processus

Pour afficher l’utilisation la plus élevée de la CPU et de la mémoire par des processus exécutés par root :

 ps u | sort -k 1 -r | head -10
Commande ps - lister les processus par utilisation CPU et mémoire sur Linux

Exécutez la commande suivante pour afficher l’utilisation de la CPU pour la commande spécifique :

ps -eo pcpu,args | sort -k 1 -r | head -8
Commande ps - lister les processus par utilisation CPU et mémoire sur Linux

Pour afficher des processus pour tous les utilisateurs et non attachés à un terminal en liste de formats complets :

ps -auxf | sort -nr -k 3 | head -10
Commande ps - lister les processus par utilisation CPU et mémoire sur Linux

Afficher les processus d’un utilisateur en particulier

Parfois il est utile de vérifier les processus en cours d’exécution pour un utilisateur spécifique :

ps -f -U www-data -u www-data

Afficher ou obtenir le PID d’un processus

Pour obtenir le PID du processus clamsmtpd :

ps -C clamsmtpd -o pid=

Pour afficher le processus lié au pid numéro 767 :

ps -q 767 -o comm=