Zombies no bash

8

Bash não parece criar zumbis. Parece que os processos são imediatamente colhidos 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 seguramente kill -9 se ele não morrer dentro de um certo período de tempo, mas eu não quero acidentalmente zapar um processo que não é meu processo filho. Processos de zumbis geralmente tornam muito fácil e seguro a condição de corrida.

    
por PSkocik 22.07.2015 / 04:11

2 respostas

10

Para criar um processo zumbi:

$ (sleep 1 & exec /bin/sleep 10)

Isso substitui o shell que executa sleep 1 com /bin/sleep 10 e não saberá que o processo sleep 1 foi finalizado, criando um zumbi por 10 segundos.

Não sei o que você espera de um processo de zumbis. Um processo de zumbis já estava morto, você não pode matá-lo.

Na verdade, você pode fazer com que os processos de zumbis desapareçam, mas matando seus pais, e não os processos de zumbis.

    
por 22.07.2015 / 05:21
2

Resposta não tão interessante:

$ (A=$BASHPID && ( kill -STOP $A ))

[1]+  Stopped                 ( A=$BASHPID && ( kill -STOP $A ) )

$ ps -C bash
  PID TTY          TIME CMD
29453 pts/0    00:00:00 bash
29593 pts/0    00:00:00 bash
29594 pts/0    00:00:00 bash <defunct>
    
por 22.07.2015 / 04:25

Tags