Elimina toda uma árvore de processos, independentemente de diferentes GIDs

3

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)
    
por BryanK 18.10.2014 / 20:36

0 respostas