Como listar tarefas elimináveis?

1 resposta

5

Bem-vindo ao mundo maravilhoso de sinais e condições de corrida.

Se você executar seu comando ps um grande número de vezes, descobrirá que ocasionalmente ele não está no estado D enquanto você executa o comando. Enquanto o find pode passar a maior parte do tempo esperando pelo seu disco, ele definitivamente não passa todo o tempo lá. E quando não estiver, seu sinal de morte será enviado.

Então, não há nenhuma maneira para fazer o que você quer. ps pode iterar sobre todos os comandos e dizer quais são passíveis de serem matados ou não naquele momento. Mas quando você começa a matar, essa lista terá mudado. E mesmo se matar (bem, o kernel em nome de matar) não pode entregar um sinal imediatamente, ele fará isso na primeira oportunidade. Então, mesmo o estado 'D' não significa 'não pode ser morto de jeito nenhum', apenas 'não pode ser morto este ciclo de clock'.

    
por 25.08.2013 / 19:14