Ps
| Fiche express | |
|---|---|
| Domaine | Gestion des processus |
| Commande | ps
|
| Contexte | Package procps-ng — deux syntaxes cohabitent : UNIX (-ef) et BSD (aux)
|
| Voir aussi | Top, Kill |
ps affiche un instantané des processus en cours. Contrairement à Top, la sortie n'est pas rafraîchie automatiquement — utile pour scripter, trier ou grepper une liste de processus.
Usage de base
ps -ef # syntaxe UNIX : tous les processus, arborescence PPID visible
ps aux # syntaxe BSD : tous les processus, %CPU et %MEM inclus
ps -ef --forest # arborescence parent/enfant lisible (indentation)
Ne pas mélanger les deux syntaxes (ps -aux n'est pas équivalent à ps aux
- le premier interprète
a,u,xcomme des options UNIX
séparées et ps émet un avertissement sur l'absence de processus avec un utilisateur nommé « x »).
Trier par consommation CPU
ps aux --sort=-%cpu | head -10
ps -eo pid,user,pcpu,comm --sort=-pcpu | head -10
Trier par consommation mémoire
ps aux --sort=-%mem | head -10
ps -eo pid,user,pmem,rss,comm --sort=-pmem | head -10
Repérer les processus bloqués en I/O disque (état D)
L'état D (« uninterruptible sleep », généralement une attente d'I/O disque) est
visible dans la colonne STAT :
ps -eo stat,pid,user,comm | awk '$1 ~ /^D/'
ps -eo pid,rss,comm --sort=-rss # RSS le plus élevé, autre piste pour de la pression I/O/mémoire
# suivre l'apparition de processus en D en continu
watch -n 1 "ps aux | awk '\$8 ~ /^D/'"
Personnaliser les colonnes affichées (-o / -eo)
-o (ou -eo pour tous les processus) accepte n'importe quelle
combinaison de champs :
ps -eo pid,ppid,user,stat,pcpu,pmem,rss,vsz,etime,comm
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm # ordonnancement temps réel
ps -eo pid,time,comm # temps CPU cumulé par processus
Champs utiles : pid/ppid (identifiants), stat (état),
pcpu/pmem (%CPU/%mémoire), rss/vsz (mémoire
résidente/virtuelle en Ko), etime (durée depuis le lancement), wchan
(fonction noyau où le processus est en attente), args/comm
(commande complète ou nom court).
Filtrer par utilisateur
ps -u www-data -o pid,args
ps -f -u root
Contexte de sécurité (SELinux)
ps -eo euser,ruser,suser,fuser,label,comm # utilisateur effectif/réel/sauvegardé + contexte SELinux
ps axZ # raccourci : label SELinux en première colonne
ps -eM # alias historique de axZ