La commande ps appelle la table des processus, un enregistrement qui résume les processus en cours d'exécution sur un système. Lorsque la commande est exécutée sans aucune option, elle affiche les processus exécutés par le shell actuel avec des détails tels que le PID, le terminal associé au processus, le temps CPU accumulé et la commande qui a démarré le processus. Cependant, différentes options peuvent être utilisées avec la commande pour filtrer les champs ou processus affichés.
Syntaxe
La syntaxe de la commande ps est :
$ ps [options]
Styles de syntaxe des options de commande
La commande ps prend en charge trois styles différents de syntaxe d'option de commande :style Unix (précédé d'un trait d'union), style GNU (précédé de deux traits d'union) et style BSD (pas de trait d'union). Mélanger ces styles ne produira pas toujours les mêmes résultats. Par exemple, la commande ps (de style BSD) imprimera tous les processus avec un terminal de contrôle, y compris les leaders de session (le premier membre d'un groupe de processus). Il imprimera également l'état de chaque processus, ainsi que la commande complète (y compris les options) de chaque processus. La commande ps -a (style Unix) imprime également tous les processus avec un terminal de contrôle, mais n'inclut pas les leaders de session, l'état de chaque processus, ni la commande complète de chaque processus.
Options de commande ps
La commande ps prend en charge plusieurs options. Certaines des options les plus importantes sont répertoriées ici.
Option | Utilisé pour |
---|---|
un | Répertorier tous les processus déclenchés par l'utilisateur. |
-e | Répertorier tous les processus. |
-l | Répertorier les processus en utilisant un format de liste longue. |
u | Répertorier les processus avec le nom d'utilisateur et l'heure de début. |
r | Exclure les processus qui ne sont pas en cours d'exécution. |
x | Inclure les processus sans terminal. |
T | Exclure les processus démarrés par un terminal autre que le terminal actuel. |
-U {nom d'utilisateur} | Afficher les processus en fonction de l'utilisateur spécifié. |
-p {PID} | Affiche uniquement le processus associé au PID spécifié. |
-C {commande} | Afficher tous les processus par nom de commande. |
–tty {numéro de terminal} | Afficher tous les processus en cours d'exécution sur le terminal spécifié. |
Si vous rencontrez l'erreur ci-dessous lors de l'exécution de la commande ps :
ps: command not found
vous pouvez essayer d'installer le package ci-dessous selon votre choix de distribution :
Répartition du système d'exploitation | Commande |
---|---|
Debian | apt-get install procps-ng |
Ubuntu | apt-get install procps-ng |
Arch Linux | pacman -S procps-ng |
Kali Linux | apt-get install procps-ng |
CentOS | yum installer procps-ng |
Fédora | dnf install procps-ng |
Raspbian | apt-get install procps-ng |
Exemples de commandes ps
1. Pour voir le processus zombie :
# ps aux | awk '{ print $8 " " $2 }' | grep -w Z
2. Lister les processus zombies :
# ps -el | grep Z
3. Pour rechercher/lister les processus en cours :
# ps -r
4. Rechercher des processus pour un utilisateur particulier :
# ps -U apache # ps U apache # ps -u apache
5. Pour voir tous les processus exécutés en tant que root (ID réel et effectif) au format utilisateur :
# ps -U root u
6. Pour trouver/lister les processus qui ont test.pl dans son exécution de commande :
# ps -f -C test.pl
7. Listez les processus basés sur les PID :
# ps -f --ppid 9576
8. pgrep, pkill - rechercher ou signaler des processus basés sur le nom et d'autres attributs :
# pgrep 1234 # pkill 1234 OR # pkill httpd
9. Trier la sortie ps :
# ps -eo uname,pid,ppid,nlwp,pcpu,pmem,psr,start_time,tty,time,args --sort -pcpu,-pmem
10. Pour imprimer un arbre de processus :
# ps -ejH # ps axjf
11. Imprimez uniquement les ID de processus de syslogd :
# ps -C syslogd -o pid=
12. Imprimez uniquement le nom du PID 42 :
# ps -p 42 -o comm=
13. Répertoriez le processus en fonction de l'UID et des commandes :
# ps -f -u wwwrun,postfix
14. Lister les processus basés sur les PID ou PPID :
# ps -f --ppid 9576
15. Répertorier les processus dans une hiérarchie :
# ps -e -o pid,args --forest
16. Répertoriez le temps de mur écoulé pour les processus :
# ps -p 1,29675 -o pid,etime=
17. Pour répertorier la hiérarchie des processus :
# ps -e -o pid,args --forest # ps axjf # ps -ejH
18. Listez tous les threads pour un processus particulier :
# ps -C java -L -o pid,tid,pcpu,state,nlwp,args
19. Pour afficher une arborescence de processus :
# pstree
20. Pour répertorier le temps de mur écoulé pour les processus :
# ps -p 1,29675 -o pid,etime=
21. Pour obtenir l'heure de début du processus :
# ps -p PID -o lstart=
22. Affichez des informations complètes sur chacun des processus en cours d'exécution :
# ps -ef | grep
23. Pour obtenir des informations sur les discussions :
# ps -eLf # ps axms
24. Pour obtenir des informations de sécurité :
# ps -eo euser,ruser,suser,fuser,f,comm,label # ps axZ # ps -eM
25. Pour voir chaque processus avec un format défini par l'utilisateur :
# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm # ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm # ps -eopid,tt,user,fname,tmout,f,wchan
26. Listez tous les threads pour un processus particulier :
# ps -C java -L -o pid,tid,pcpu,state,nlwp,args
27. Répertoriez tous les processus en cours d'exécution, y compris la chaîne de commande complète :
# ps auxww
28. Recherchez un processus qui correspond à une chaîne :
# ps aux | grep string
29. Liste tous les processus de l'utilisateur actuel au format extra complet :
# ps --user $(id -u) -F
30. Listez tous les processus de l'utilisateur actuel sous forme d'arborescence :
# ps --user $(id -u) f
31. Obtenez le PID parent d'un processus :
# ps -o ppid= -p pid
32. Trier les processus par consommation de mémoire :
# ps --sort size