Marcher un arbre de processus
J'ai le scénario suivant.
L'utilisateur, tapez le PID d'un processus, et le script doit afficher les processus et sous-processus, sous-sous-processus (et ainsi de suite) de PID, et il doit l'indiquer dans la forme d'un arbre.
J'ai essayé d'utiliser pstree PID
et ps faux PID
mais il ne fonctionne pas. Il me semble qu'il ne prend pas le PID du processus en tant qu'arguments.
Des idées s'il vous plaît?
source d'informationauteur mkab
Vous devez vous connecter pour publier un commentaire.
Voulais juste pour documenter mes démarches liées à ce problème.
Dire que je l'exécuter dans un terminal:
... et le laisser en attente à l'
read
invite d'entrée. Puis, je peux toujours trouver le pid demytest.sh
comme:... cependant, je tiens à la sortie d'un
ps axf
arbre limitée à certains parents demytest.sh
; en la regardant d'un pleinps axf
nous pouvons voir une hiérarchie:Alors, disons que je ne veux pas "scan" de la
gnome-terminal
(1489) en tant que parent, mais au lieu de cela, je veux commencer àbash
(20238).. Donc, j'aimerais obtenir ce résultat:... sauf que, je ne veux pas de copier/coller à l'enfant PIDs manuellement 🙂
Je pourrais utiliser
pstree
:... malheureusement, le résultat n'est pas exactement le même que dans
ps axf
que je préfère.Donc, je peux utiliser
pstree
simplement pour obtenir de l'enfant Pid:puis utilisez-les pour obtenir une
ps axf
arbre, basée uniquement sur le PID du processus parent:Bien, espérons que cela aide quelqu'un,
Cheers!
C'est le script bash en utilisant uniquement ps et awk. Vous pouvez l'utiliser comme une base pour les processus de génération de l'arbre.
Votre première étape est de pipe ps par awk, grep. Par l'utilisation de awk, vous pouvez isoler le "ce processus PID champ' ou le 'processus parent PID champ.
Ou, faire une promenade à travers le système de fichiers /proc.