Estou tendo problemas com o controle de processo usando os sinais disponíveis para a abstração do processo. No exemplo abaixo, você pode ver que há um script perl que é o pai da árvore inteira com group i.d. de 25235 . Este GID é herdado por todos os filhos. No entanto, um dos filhos, um shell com PID de 4205 , inicia um novo GID de 4205 .
O motivo pelo qual estou definindo um novo id de grupo para essa ramificação da árvore de processos é que às vezes eu quero executar kill -9 -4205 matando o processo sh e todos os seus filhos com que compartilham o mesmo GID sem afetar o restante da árvore de processos. Eu posso então reiniciar o processo shell e seus filhos. O problema que estou tendo é quando eu preciso matar toda a árvore começando com perl script (o pai) Se eu executar kill -9 -25235 (main group i.d. ) ou kill -9 4678 (parents PID ) isso vai matar o árvore inteira, exceto o ramo que tem um id de grupo diferente. Esses processos serão matriculados novamente no init.
Existe uma maneira de matar a árvore inteira, independentemente dos diferentes GIDs ? Eu suspeito que session ids pode vir a jogar, mas eu não fui capaz de descobrir isso em caso afirmativo.
exemplo da árvore de processos:
perl(4678,25235)─┬─sc_serv(4685,25235)─┬─{sc_serv}(4691,25235)
│ ├─{sc_serv}(4693,25235)
│ └─{sc_serv}(4694,25235)
└─sh(4205,4205)─┬─ffmpeg(4207,4205)
└─vlc(4208,4205)─┬─{vlc}(4217,4205)
├─{vlc}(4219,4205)
└─{vlc}(4296,4205)