Comment puis-je obtenir l'affichage de toute l'arborescence des processus générés par un processus donné sous forme d'arbre, et uniquement cet arbre, c'est-à-dire aucun autre processus ?
Le résultat pourrait par exemple ressembler à
4378 ? Ss 0:10 SCREEN
4897 pts/16 Ss 0:00 \_ -/bin/bash
25667 pts/16 S+ 0:00 | \_ git diff
25669 pts/16 S+ 0:00 | \_ less -FRSX
11118 pts/32 Ss+ 0:00 \_ -/bin/bash
11123 pts/32 S+ 0:00 \_ vi
Je n'ai pas pu obtenir le résultat souhaité uniquement avec les paramètres de ps
.
La méthode suivante donne le résultat souhaité mais semble un peu compliquée :
#!/bin/bash
pidtree() {
echo -n $1 " "
for _child in $(ps -o pid --no-headers --ppid $1); do
echo -n $_child `pidtree $_child` " "
done
}
ps f `pidtree 4378`
Quelqu'un a-t-il une solution plus simple ?