
Lorsque vous travaillez sur une machine Linux, vous devrez parfois savoir quels processus sont en cours d'exécution. Il existe un certain nombre de commandes que vous pouvez utiliser pour trouver des informations sur les processus en cours d'exécution, avec ps
et top
étant les plus couramment utilisés.
Dans cet article, nous parlerons du pstree
commande. Il est similaire à ps
, mais au lieu de répertorier les processus en cours d'exécution, il les affiche dans une arborescence. Le format arborescent est un moyen plus pratique d'afficher la hiérarchie des processus et rend la sortie plus attrayante visuellement.
Comment utiliser le pstree
Commande #
La syntaxe générale pour le pstree
commande est la suivante :
ps [OPTIONS] [USER or PID]
Dans sa forme la plus simple lorsqu'il est invoqué sans aucune option ou argument, pstree
affiche une arborescence hiérarchique de tous les processus en cours :
pstree
systemd─┬─VBoxService───7*[{VBoxService}]
├─accounts-daemon───2*[{accounts-daemon}]
├─2*[agetty]
├─atd
├─cron
├─dbus-daemon
├─irqbalance───{irqbalance}
├─2*[iscsid]
├─lvmetad
├─lxcfs───2*[{lxcfs}]
├─networkd-dispat───{networkd-dispat}
├─nginx───2*[nginx]
...
L'élément supérieur/racine de l'arborescence est le processus parent de tous les processus système. Dans cet exemple, c'est systemd
, qui est le premier processus qui démarre au démarrage.
pstree
fusionne des branches identiques en les plaçant entre crochets et en les préfixant d'un nombre entier représentant le nombre de branches. Cela rend la sortie plus lisible et visuellement attrayante.
Ci-dessous un exemple montrant comment les crochets sont utilisés :
├─2*[agetty]
est identique à :
├─agetty
├─agetty
Pour désactiver la fusion des branches identiques, utilisez le -c
choix :
pstree -c
Les threads d'un processus sont affichés sous le processus parent et affichés en utilisant le nom du processus entre des accolades. Voici un exemple :
├─lxcfs───2*[{lxcfs}]
Utilisez le -t
option pour afficher les noms complets des threads. Si vous souhaitez masquer les threads et afficher uniquement les processus, utilisez le -T
option.
Typiquement, pstree
affiche de nombreuses lignes de sortie qui ne tiennent pas sur l'écran. Pour afficher la sortie une page à la fois, dirigez-la vers le less
commande :
pstree | less
Si un nom d'utilisateur est donné en argument, pstree
affiche uniquement les processus appartenant à cet utilisateur. Par exemple, la commande suivante n'affichera que les processus démarrés par un utilisateur nommé "linuxize" :
pstree linuxize
Lorsque PID est spécifié comme argument, pstree
affiche un arbre avec le processus donné comme racine de l'arbre. Voici un exemple :
pstree 1943
sshd───bash───pstree
Pour afficher les processus parents du processus donné, utilisez le -s
suivi du PID du processus :
pstree -s 1943
systemd───sshd───sshd───bash───pstree
Afficher les PID et PGID #
Habituellement, lors de l'exécution de pstree
, l'information la plus importante que l'utilisateur recherche est l'ID de processus. Par exemple, connaître le PID vous permet de tuer un processus défectueux.
Le -p
l'option indique pstree
pour afficher les PID :
pstree -p
Les PID sont affichés entre parenthèses après chaque processus ou thread.
systemd(1)─┬─VBoxService(955)─┬─{VBoxService}(956)
│ ├─{VBoxService}(957)
│ ├─{VBoxService}(958)
│ ├─{VBoxService}(959)
│ ├─{VBoxService}(960)
│ ├─{VBoxService}(961)
│ └─{VBoxService}(962)
...
Par défaut, pstree
, trier les processus avec le même parent par nom. Le -n
l'option indique pstree
pour utiliser le tri numérique, c'est-à-dire trier par PID :
pstree -pn
L'ID de groupe de processus ou PGID est l'ID de processus du premier membre du groupe de processus. Pour afficher les PGID, utilisez le -g
choix :
pstree -g
Les PID sont également affichés entre parenthèses après chaque processus ou thread.
systemd(1)─┬─VBoxService(954)─┬─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ ├─{VBoxService}(954)
│ └─{VBoxService}(954)
...
Lorsque les PID ou PGID sont affichés, la fusion est implicitement désactivée.
Afficher les arguments de la ligne de commande #
Certains programmes peuvent être appelés avec des options de configuration spécifiées comme arguments de ligne de commande.
Par défaut, le pstree
ne vous montre pas les arguments de ligne de commande pour les processus en cours d'exécution. Pour voir comment le processus a été lancé, utilisez la commande avec le -a
choix :
pstree -a
...
├─agetty -o -p -- \\u --keep-baud 115200,38400,9600 ttyS0 vt220
├─agetty -o -p -- \\u --noclear tty1 linux
...
Mise en surbrillance #
pstree
vous permet également de mettre en évidence les processus pour une meilleure représentation visuelle.
Le -h
l'option indique pstree
pour mettre en évidence le processus en cours et tous ses ancêtres.
pstree -h
Pour mettre en évidence un processus spécifique, utilisez le -H
option suivie de l'identifiant du processus :
pstree -H PID_NUMBER
Si la mise en surbrillance n'est pas prise en charge, la commande se terminera avec une erreur.
Conclusion #
Le pstree
affiche les processus en cours sous forme d'arborescence.
Pour plus d'informations sur tous les pstree
disponibles options, tapez man pstree
dans votre terminal.
Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.