Avoir l'histoire d'un processus (savoir qu'il l'a lancé ou ce qu'il a lancé) est une nécessité quand on doit superviser ou agir sur celui-ci.

Initialement, j'avais écrit deux script en shell qui me permettaient d'avoir les parents et les fils d'un process, en suivant la chaine des pid.

mais plus récemment, je suis revenu sur pstree et ses optoins, et en particulier sur l'utilisation du pid, de pgrep et autres choses qu'on peut faire pour avoir les informations nécessaires à notre suivit.

exemple : je veux savoir qui est a l'origine de la consommation excessive de cpu, et je vois qu'il s'agit du wekan en snap. pour avoir la chaine de vie de ce process, je fais donc :

pstree -p 20456 -asl

systemd,1 nosplash
  └─lxd,20160
      └─systemd,20170
          └─wekan-control,20456 /snap/wekan/644/bin/wekan-control
              └─node,22264 main.js
                  ├─{node},22268
                  ├─{node},22269
                  ├─{node},22270
                  ├─{node},22271
                  ├─{node},22279
                  ├─{node},22488
                  ├─{node},22489
                  ├─{node},22490
                  └─{node},22491

Et tout logiquement, si je voulais chercher par nom de processus, je pourrais faire :

pstree -p `pgrep wekan-control` -asl

et voila, c'est aussi simple que ca. il ne manquerait que la coloration syntaxique de la commande ou du pid selon ce qui est cherché, mais ca c'est une simple formalité, que tout unixien peut résoudre.