30 exemples utiles de la commande ‘ps’ pour la surveillance des processus Linux

ps (état des processus) est un utilitaire natif d’Unix/Linux permettant de consulter des informations sur une sélection de processus en cours d’exécution sur un système : il lit ces informations à partir des fichiers virtuels dans le système de fichiers /proc. C’est l’un des utilitaires importants pour l’administration système, en particulier pour la surveillance des processus, pour vous aider à comprendre ce qui se passe dans un système Linux.

Il offre de nombreuses options pour manipuler sa sortie, cependant, vous en trouverez un petit nombre pratiquement utile pour une utilisation quotidienne.

Lire aussi : Tout ce que vous devez savoir sur les processus sous Linux [Guide complet]

Dans cet article, nous examinerons 30 exemples utiles de commandes ps pour surveiller les processus actifs en cours d’exécution sur un système Linux.

Notez que ps produit une sortie avec une ligne d’en-tête, qui représente la signification de chaque colonne d’informations, vous pouvez trouver la signification de tous les libellés sur la page de manuel de ps.

Lister tous les processus dans l’interpréteur de commandes actuel

1. Si vous exécutez la commande ps sans arguments, elle affiche les processus pour l’interpréteur de commandes actuel.

$ ps 
List Current Running Processes

Afficher tous les processus dans différents formats

2. Afficher chaque processus actif sur un système Linux dans un format générique (Unix/Linux).

$ ps -A
OR
$ ps -e
List Processes in Standard Format

3. Afficher tous les processus au format BSD.

$ ps au
OR
$ ps axu
List Processes in BSD Format

4. Pour effectuer une liste complète au format, ajoutez le drapeau -f ou -F.

$ ps -ef
OR
$ ps -eF
List Processes in Long List Format

Afficher les processus en cours d’exécution par l’utilisateur

5. Vous pouvez sélectionner tous les processus vous appartenant (lanceur de la commande ps, root dans ce cas), tapez :

$ ps -x 

6. Pour afficher les processus d’un utilisateur par ID utilisateur réel (RUID) ou nom, utilisez le drapeau -U.

$ ps -fU tecmint
OR
$ ps -fu 1000
List User Processes by ID

7. Pour sélectionner les processus d’un utilisateur par ID utilisateur effectif (EUID) ou nom, utilisez l’option -u.

$ ps -fu tecmint
OR
$ ps -fu 1000

Afficher tous les processus en cours d’exécution en tant que root (ID réel et effectif)

8. La commande ci-dessous vous permet de voir chaque processus s’exécutant avec les privilèges de l’utilisateur root (ID réel et effectif) au format utilisateur.

$ ps -U root -u root 
Display Root User Running Processes

Afficher les processus de groupe

9. Si vous souhaitez répertorier tous les processus appartenant à un certain groupe (ID de groupe réel (RGID) ou nom), tapez :

$ ps -fG apache
OR
$ ps -fG 48
Display Group Processes

10. Pour répertorier tous les processus appartenant au nom de groupe effectif (ou à la session), tapez :

$ ps -fg apache

Afficher les processus par PID et PPID

11. Vous pouvez répertorier les processus par PID comme suit :

$ ps -fp 1178
List Processes by PID

12. Pour sélectionner le processus par PPID, tapez :

$ ps -f --ppid 1154
List Process by PPID

13. Faire une sélection en utilisant une liste de PID.

$ ps -fp 2226,1154,1146
List Processes by PIDs

Afficher les processus par TTY

14. Pour sélectionner les processus par tty, utilisez le drapeau -t comme suit.

$ ps -t pts/0
$ ps -t pts/1
$ ps -ft tty1
List Processes by TTY

Afficher l’arborescence des processus

15. Un arbre des processus montre comment les processus sur le système sont liés les uns aux autres; les processus dont les parents ont été tués sont adoptés par init (ou systemd).

$ ps -e --forest 
List Process Tree

16. Vous pouvez également afficher un arbre des processus pour un processus donné comme ceci.

$ ps -f --forest -C sshd
OR
$ ps -ef --forest | grep -v grep | grep sshd 
List Tree View of Process

Afficher les threads des processus

17. Pour afficher tous les threads d’un processus, utilisez le drapeau -L, cela affichera les colonnes LWP (processus léger) ainsi que NLWP (nombre de processus légers).

$ ps -fL -C httpd
List Process Threads

Spécifier un format de sortie personnalisé

En utilisant les options -o ou –format, ps vous permet de construire des formats de sortie définis par l’utilisateur comme indiqué ci-dessous.

18. Pour lister tous les spécificateurs de format, incluez le drapeau L.

$ ps L

19. La commande ci-dessous vous permet de voir le PID, le PPID, le nom d’utilisateur et la commande d’un processus.

$ ps -eo pid,ppid,user,cmd
List Processes with Names

20. Voici un autre exemple d’un format de sortie personnalisé montrant le groupe du système de fichiers, la valeur de « nice », l’heure de démarrage et le temps écoulé d’un processus.

$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
List Process ID Information

21. Pour trouver un nom de processus en utilisant son PID.

$ ps -p 1154 -o comm=
Find Process using PID

Afficher les processus parent et enfant

22. Pour sélectionner un processus spécifique par son nom, utilisez le drapeau -C, cela affichera également tous ses processus enfants.

$ ps -C sshd
Find Parent-Child Process

23. Trouvez tous les PIDs de toutes les instances d’un processus, utile lors de l’écriture de scripts qui ont besoin de lire les PIDs depuis une sortie standard ou un fichier.

$ ps -C httpd -o pid=
Find All Process PIDs

24. Vérifiez le temps d’exécution d’un processus.

$ ps -eo comm,etime,user | grep httpd

La sortie ci-dessous montre que le service HTTPD fonctionne depuis 1 heure, 48 minutes et 17 secondes.

Find Process Uptime

Résoudre les problèmes de performances du système Linux

Si votre système ne fonctionne pas comme il se doit, par exemple s’il est anormalement lent, vous pouvez effectuer certains diagnostics système comme suit.

26. Trouvez les processus en cours d’exécution les plus importants en termes d’utilisation de la mémoire et du processeur sous Linux.

$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
OR
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
Find Top Running Processes

27. Pour arrêter les processus Linux/applications non réactifs ou tout processus qui consomme beaucoup de temps CPU.

D’abord, trouvez le PID du processus ou de l’application non réactive.

$ ps -A | grep -i stress

Ensuite, utilisez la commande kill pour le terminer immédiatement.

$ kill -9 2583 2584
Find and Kill a Process

Afficher les informations de sécurité

28. Afficher le contexte de sécurité (spécifiquement pour SELinux) comme ceci.

$ ps -eM
OR
$ ps --context
Find SELinux Context

29. Vous pouvez également afficher des informations de sécurité dans un format défini par l’utilisateur avec cette commande.

$ ps -eo  euser,ruser,suser,fuser,f,comm,label
List SELinux Context by Users

Effectuer une surveillance des processus en temps réel à l’aide de l’utilitaire Watch

30. Enfin, puisque ps affiche des informations statiques, vous pouvez utiliser l’utilitaire watch pour effectuer une surveillance des processus en temps réel avec une sortie répétitive, affichée après chaque seconde comme dans la commande ci-dessous (spécifiez une commande ps personnalisée pour atteindre votre objectif).

$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
Real-Time Process Monitoring

Important : ps ne montre que des informations statiques, pour voir une sortie fréquemment mise à jour, vous pouvez utiliser des outils tels que htop; top, et glances : les deux derniers sont en fait des outils de surveillance des performances du système Linux.

Vous pourriez également aimer lire les articles connexes suivants.

  1. Comment trouver un nom de processus à l’aide du numéro PID sous Linux
  2. Trouver les processus en cours d’exécution les plus gourmands en mémoire et en CPU dans Linux
  3. A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
  4. Comment trouver et tuer les processus en cours d’exécution dans Linux
  5. Comment démarrer une commande Linux en arrière-plan et détacher le processus dans le terminal

C’est tout pour le moment. Si vous avez des exemple(s) utile(s) de la commande ps à partager (en n’oubliant pas d’expliquer ce qu’elle fait), utilisez le formulaire de commentaire ci-dessous.

Source:
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/