30 exemples de « commandes ps » utiles pour la surveillance des processus Linux
ps (processes status) est un utilitaire natif Unix/Linux permettant de visualiser des informations concernant une sélection de processus en cours d'exécution sur un système : il lit ces informations à partir des fichiers virtuels dans le répertoire/système de fichiers proc. C'est l'un des utilitaires importants pour l'administration système, en particulier dans le cadre de la surveillance des processus, pour vous aider à comprendre ce qui se passe dans un système Linux.
Il dispose de nombreuses options pour manipuler sa sortie, cependant, vous en trouverez un petit nombre pratiquement utiles 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 de titre, qui représente la signification de chaque colonne d'informations. Vous pouvez trouver la signification de toutes les étiquettes sur la page de manuel ps.
Répertorier 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. Affichez chaque processus actif sur un système Linux au format générique (Unix/Linux).
ps -A
OR
ps -e
3. Affichez tous les processus au format BSD.
ps au
OR
ps axu
4. Pour effectuer un listing au format complet, ajoutez l'indicateur -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 dont vous êtes propriétaire (exécuteur 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 tecmint
OR
ps -fu 1000
7. Pour sélectionner les processus d'un utilisateur par ID (EUID) ou nom d'utilisateur effectif, utilisez l'option -u
.
ps -fu tecmint
OR
ps -fu 1000
Imprimer tous les processus exécutés en tant que racine (ID réel et effectif)
8. La commande ci-dessous vous permet de visualiser chaque processus en cours d'exécution avec les privilèges d'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), saisissez.
ps -fG apache
OR
ps -fG 48
10. Pour répertorier tous les processus appartenant à un nom de groupe (ou de session) effectif, saisissez.
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 un processus par PPID, saisissez.
ps -f --ppid 1154
13. Effectuez une sélection à l'aide d'une liste PID.
ps -fp 2226,1154,1146
Afficher les processus par téléscripteur
14. Pour sélectionner des processus par tty, utilisez l'indicateur -t comme suit.
ps -t pts/0
ps -t pts/1
ps -ft tty1
Arbre de processus d'impression
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 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 sshd
OR
ps -ef --forest | grep -v grep | grep sshd
Fils du processus d'impression
17. Pour imprimer tous les threads d'un processus, utilisez l'indicateur -L
, cela affichera le LWP (processus léger) ainsi que les colonnes 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 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 d'afficher 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èmes 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 parent et enfant
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. Recherchez tous les PID de toutes les instances d'un processus, utile lors de l'écriture de scripts qui doivent lire les PID à partir d'une sortie ou d'un fichier std.
ps -C httpd -o pid=
24. Vérifier le temps d'exécution d'un processus.
ps -eo comm,etime,user | grep httpd
Le résultat ci-dessous montre que le service HTTPD fonctionne depuis 1 heure, 48 minutes et 17 secondes.
Dépanner les performances du système Linux
Si votre système ne fonctionne pas comme il devrait l'être, par exemple s'il est inhabituellement lent, vous pouvez effectuer un dépannage système comme suit.
26. Recherchez les processus les plus 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 | head
OR
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Pour tuer les processus Linux/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
Utilisez ensuite la commande kill pour y mettre fin immédiatement.
kill -9 2583 2584
Imprimer 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 les 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 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 toutes les secondes, 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 affiche uniquement des informations statiques. Pour afficher les sorties fréquemment mises à jour, vous pouvez utiliser des outils tels que htop ; haut, et aperçus : les deux derniers sont en fait des outils de surveillance des performances du système Linux.
Vous aimerez peut-être également lire les articles connexes suivants.
- Comment trouver un nom de processus à l'aide du numéro PID sous Linux
- Recherchez les processus les plus en cours d'exécution en fonction de l'utilisation la plus élevée de la mémoire et du processeur sous Linux
- Un guide des commandes Kill, Pkill et Killall pour terminer un processus sous Linux
- Comment rechercher et tuer les processus en cours sous Linux
- Comment démarrer la commande Linux en arrière-plan et détacher le processus dans le terminal
C'est tout pour le moment. Si vous avez des exemples de commande ps utiles à partager (sans oublier d'expliquer ce qu'ils font), utilisez le formulaire de commentaires ci-dessous.