Se você tem pgrep
e pkill
disponível, isso é mais fácil.
pgrep myscript.sh
vai te dar o (s) pid (s) de myscript.sh. Uma opção -o
vai te dar o mais antigo pid.
pgrep -P $myscriptPid
para o pid do comando acima fará com que você tenha todos os filhos do script pai.
pkill
terá os mesmos parâmetros, mas como o nome sugere ...
Se pgrep
não estiver disponível, um ps -ef | awk '/myscript.sh/ && !/ awk / { print $2 }'
obterá o (s) pid (s)
ps -ef | awk -v pid=$myscriptPid '{ if ( $3 == pid ) { print $2 }'
obteria os filhos do seu script.
Isso não recorre a árvore de processos até os filhos de crianças, mas deve ser suficiente