2007/1/15, Felipe Augusto van de Wiel (faw) <[EMAIL PROTECTED]>:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1On 01/14/2007 06:32 PM, sluiz wrote: > Estou precisando criar um processo zombei, ou seja, preciso matar o > processo pai e manter o filho funcionando. Hmmm, isso não é um processo zombie. > Toda vez que utilizo kill -9 $PPID mato o processo atual também. > Já tentei executar o script filho com & no final, já > tentei nohup, mas não adianta esse filho tá muito ligado ao pai. > Aguém tem ulguma idéi para separar esse dois? Não é beeeeem assim que funciona. A idéia de pai e filho está ligada à cadeia de execução, um dos exemplos tradicionais é a execução da chamada fork() em um programa C. Você pode chegar próximo disso via sheel (fazer pai e filho), mas pra criar um processo zombie a história é outra.
Vcs não criam um processo zombie, um processo fica zombie - quase todos do seu micro são candidatos a ficar zombie... ainda bem que a grande maioria não fica muito tempo :-)
Processos zombie são so que não morrem, mas também não estão mais em estado de interação ou seja, eles estão apenas na pilha de processos consumindo recursos (ou, criando oportunidade para algum tipo de ataque ou DoS).
Aqui eu discordo. O processo zombie já morreu. Eu já expliquei isso outras vezes aqui, mas em resumo: Qdo vc faz um fork, o pai-filho mantém um grau de parentesco. É possível que o filho mande 'sinais' para o pai (não lembro se vice-versa é verdade). O pai precisa implementar a rotina de tratamento de sinais, pq mesmo se o filho não manda nada, quando ele morre ele SEMPRE sinaliza para o pai. Entre a 'hora da morte' do filho e a recepção e tratamento do sinal pelo pai, o processo fica zombie. Façam o teste: abra um shell, que vai servir p/ monitorar os processos com um 'ps f' abra um outro shell, e dentro dele rode alguma coisa (pode ser até outro shell) - esse vai ser o filho. Agora, volte no outro terminal e rode 'kill -SIGSTOP <pid_do_pai>'; volte ao 2o. shell e encerre o processo filho. Pronto! Vc está com um processo zombie até dar o 'kill -SIGCONT <pid_do_pai>' Depois que o processo virou zombie, ele já morreu - só resta o corpo ainda... :-) -- Marcos

