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

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

3. Afficher tous les processus au format BSD.
$ ps au OR $ ps axu

4. Pour effectuer une liste complète au format, ajoutez le drapeau -f
ou -F
.
$ ps -ef OR $ ps -eF

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

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

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

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

12. Pour sélectionner le processus par PPID, tapez :
$ ps -f --ppid 1154

13. Faire une sélection en utilisant une liste de PID.
$ ps -fp 2226,1154,1146

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

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

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

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

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

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

21. Pour trouver un nom de processus en utilisant son PID.
$ ps -p 1154 -o comm=

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

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=

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.

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

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

Afficher les informations de sécurité
28. Afficher le contexte de sécurité (spécifiquement pour SELinux) comme ceci.
$ ps -eM OR $ ps --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

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'

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.
- Comment trouver un nom de processus à l’aide du numéro PID sous Linux
- Trouver les processus en cours d’exécution les plus gourmands en mémoire et en CPU dans Linux
- A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
- Comment trouver et tuer les processus en cours d’exécution dans Linux
- 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/