Bash não parece criar zumbis. Parece que os processos são colhidos imediatamente quando são mortos.
Posso fazer bash fazer zumbis?
Por que estou perguntando:
Eu gostaria de poder matar com segurança um processo filho ou com segurança kill -9
, se ele não morrer dentro de um certo período de tempo, mas não quero zapear acidentalmente um processo que não seja o meu processo filho. Os processos zumbis geralmente tornam muito fácil e seguro para as condições de corrida.
unshare
para criar um espaço de nome PID, para que, dentro dessa árvore de processos, os processos externos sejam isolados e inacessíveis.kill -KILL %n
onden
está o número do trabalho etc.), em vez de tentar contorná-lo.timeout
comando?Respostas:
Para fazer um processo zumbi:
Isso substitui o shell que é executado
sleep 1
com o/bin/sleep 10
qual osleep 1
processo não será concluído, criando um zumbi por 10 segundos.Não sei o que você espera de matar um processo de zumbi. Um processo de zumbi já estava morto, você não pode matá-lo.
Na verdade, você pode fazer com que os processos zumbis desapareçam, mas matando seu pai, e não os processos zumbis.
fonte
Resposta não tão interessante:
fonte
$BASHPID
é$$
eu acho.$BASHPID
não é o mesmo que$$
. Tente seguinte código:echo $$ $BASHPID ;echo $(echo $$ $BASHPID)
. Você pode encontrar mais informações emman bash
.