Não há uma maneira genérica garantida de fazer isso além de percorrer a árvore de processos (observando os comandos PPID
, depois o processo PPID
, etc ...).
Existe uma boa utilidade para isso, se você não está tentando escrever algo: pstree
. Ele lhe dará uma visão "gráfica" da hierarquia do processo. Algo como:
$ pstree -a
...
├─udevd --daemon
│ ├─udevd --daemon
│ └─udevd --daemon
├─urxvt
│ └─bash
│ └─pstree -ah
└─xdm
├─X :0 vt7 -auth /var/lib/xdm/authdir/authfiles/A:0-g8w3zk
└─xdm
└─awesome
├─chrome
│ ├─chrome
│ └─21*[{chrome}]
└─qmpdclient
└─{qmpdclient}
Existem opções para mostrar o PID
s, mostrar ou ocultar as linhas de comando, etc ...