30 Exemples utiles de «commande ps» pour la surveillance des processus Linux
ps (état des processus) est un utilitaire Unix / Linux natif pour afficher des informations concernant une sélection des processus en cours d’exécution sur un système: il lit ces informations à partir des fichiers virtuels du système de fichiers / proc. C’est l’un des utilitaires importants pour l’administration système spécifiquement sous surveillance de processus, pour vous aider à comprendre ce qui se passe sur un système Linux.
Il a de nombreuses options pour manipuler sa sortie, mais vous trouverez un petit nombre d’entre eux pratiquement utiles pour un usage quotidien.
À lire aussi: Tout ce que vous devez savoir sur les processus sous Linux
Dans cet article, nous examinerons 30 exemples utiles de commandes ps pour surveiller les processus en cours d’exécution actifs 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 toutes les étiquettes dans le ps man page.
Lister tous les processus dans le shell actuel
1. Si vous exécutez la commande ps sans aucun argument, elle affiche les processus pour le shell actuel.
$ ps
Imprimer tous les processus dans différents formats
2. Afficher tous les processus actifs sur un système Linux au format générique (Unix / Linux).
$ ps -AOR$ ps -e
3. Afficher tous les processus au format BSD.
$ ps auOR$ ps axu
4. Pour créer une liste au format complet, ajoutez l’indicateur -f
ou -F
.
$ ps -efOR$ ps -eF
Afficher les processus en cours d’exécution de l’utilisateur
5. Vous pouvez sélectionner tous les processus que vous possédez (exécutant 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 par nom, utilisez l’indicateur -U
.
$ ps -fU tecmintOR$ ps -fu 1000
7. Pour sélectionner les processus d’un utilisateur par ID utilisateur effectif (EUID) ou par nom, utilisez l’option -u
.
$ ps -fu tecmintOR$ ps -fu 1000
Imprimer tous les processus exécutés en tant que racine (ID réel et efficace)
8. La commande ci-dessous vous permet de visualiser tous les processus exécutés avec les privilèges d’utilisateur root (véritable & ID 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), saisissez.
$ ps -fG apacheOR$ ps -fG 48
10. Pour lister tous les processus appartenant au nom de groupe effectif (ou session), saisissez.
$ ps -fg apache
Afficher les processus par PID et PPID
11. Vous pouvez lister les processus par PID comme suit.
$ ps -fp 1178
12. Pour sélectionner le processus par PPID, saisissez.
$ ps -f --ppid 1154
13. Effectuez votre sélection à l’aide de la liste PID.
$ ps -fp 2226,1154,1146
Affichage des processus par TTY
14. Pour sélectionner des processus par tty, utilisez l’indicateur -t comme suit.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
Imprimer l’arborescence des processus
15. Une arborescence de processus montre comment les processus du système sont liés les uns aux autres; les processus dont les parents ont été tués sont adoptés par l’init (ou systemd).
$ ps -e --forest
16. Vous pouvez également imprimer une arborescence de processus pour un processus donné comme celui-ci.
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Threads de processus d’impression
17. Pour imprimer tous les threads d’un processus, utilisez l’indicateur -H
, cela affichera les colonnes LWP (processus léger) ainsi que NLWP (nombre de processus légers).
$ ps -fL -C httpd
Spécifier le format de sortie personnalisé
En utilisant les options -o ou –format, ps vous permet de créer des formats de sortie définis par l’utilisateur comme indiqué ci-dessous.
18. Pour répertorier tous les spécificateurs de format, incluez l’indicateur L
.
$ ps L
19. La commande ci-dessous vous permet de visualiser le PID, le PPID, le nom d’utilisateur et la commande d’un processus.
$ ps -eo pid,ppid,user,cmd
20. Vous trouverez ci-dessous un autre exemple de format de sortie personnalisé affichant le groupe de système de fichiers, la valeur intéressante, l’heure de début et le temps écoulé d’un processus.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. Pour rechercher un nom de processus à l’aide de son PID.
$ ps -p 1154 -o comm=
Afficher les processus parents et enfants
22. Pour sélectionner un processus spécifique par son nom, utilisez l’indicateur -C, cela affichera également tous ses processus enfants.
$ ps -C sshd
23. Trouvez tous les PID de toutes les instances d’un processus, utile lors de l’écriture de scripts qui ont besoin de lire les PID à partir d’une sortie ou d’un fichier std.
$ 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.
Dépannage 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 un dépannage du système comme suit.
26. Trouvez les meilleurs processus en cours d’exécution en fonction de l’utilisation la plus élevée de la mémoire et du processeur sous Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Pour tuer un processus Linux / des applications qui ne répondent pas ou tout processus qui consomme beaucoup de temps CPU.
Tout d’abord, recherchez le PID du processus ou de l’application qui ne répond pas.
$ ps -A | grep -i stress
Ensuite, utilisez la commande kill pour le terminer immédiatement.
$ kill -9 2583 2584
Imprimer les informations de sécurité
28. Affichez le contexte de sécurité (spécifiquement pour SELinux) comme celui-ci.
$ ps -eMOR$ ps --context
29. Vous pouvez également afficher les informations de sécurité au 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 Watch Utility
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 n’affiche que des informations statiques, pour afficher la sortie fréquemment mise à jour, vous pouvez utiliser des outils tels que htop; top et regards: les deux derniers sont en fait un outil de surveillance des performances du système Linux.
Vous aimerez peut-être aussi lire ces articles connexes suivants.
- Comment trouver un nom de processus à l’aide du numéro PID sous Linux
- Trouver les principaux processus en cours d’exécution en fonction de l’utilisation maximale de la mémoire et du processeur sous Linux
- Guide de Commandes Kill, Pkill et Killall pour terminer un processus sous Linux
- Comment rechercher et tuer des processus en cours d’exécution sous Linux
- Comment démarrer une commande Linux en arrière-plan et détacher un processus dans un terminal