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)