--- Em shell-script@yahoogrupos.com.br, "Julio C. Neves" <julio.ne...@...> 
escreveu
>
> Fala Cesar,
> o que vc está pedindo, é muito amplo e meu tempo é pouco, portanto vou te
> dar as dicas para vc correr atrás, OK?

Não tem pressa. Se ficar pronto só na semana que vem, ou no mês que vem, não 
tem problema. Eu estou estudando o assunto também, quem sabe não chego a uma 
solução antes de você?

> - Sobre o CTRL+C
> Dá uma olhada no cmd
> trap 

Artigo interessantíssimo.

> Desta forma teu script pai receberá o sinal 17 cada vez que um filho
> terminar;

Aí é que está. Os processos filhos ficarão rodando indefinidamente. O Wait é 
mais para colocar o programa pai em espera de uma interrupção do usuário, sem 
usar o "read".

> A variável $! tem o PID do último processo em background. Assim fica fácil
> montar uma lista dos processos que estão em bg e ir limpando-a à medida que
> vc for recebendo sinais 17. O que sobrar na lista vc deverá matar no trap
> qdo receber um crtl+c (sinal 2).

É mais simples, se o programa funcionar corretamente, os filhos não devem 
morrer antes do pai, ou melhor, só devem morrer pelas mãos do pai (Saturno?). 
Então é só montar a tal lista de processos (FIFO/FILO/STACK - dá uma pista aí 
que eu sigo o resto), e depois matar eles um por um.

Abraços.

Responder a