Como matar um processo no Linux se kill -9 não tiver efeito

4

Eu imagino que kill -9 ainda apenas envia um sinal para um processo. Se o processo não está se comportando bem, eu imagino que matar -9 não teria efeito. De fato, hoje, pela primeira vez, vi kill -9 não ter efeito quando enviado para um processo de ruby preso. Então, aqui está a minha pergunta: Existe alguma maneira mais dura de matar um processo?

    
por cat pants 15.12.2012 / 01:09

3 respostas

11

Você precisa reiniciar a máquina. Se kill -9 não matar um processo, isso significa que ele está preso no kernel. A menos que você possa descobrir o que está preso e soltá-lo, não há nada que você possa fazer. A razão pela qual ele está preso é que ele está esperando por algo e a lógica necessária para simplesmente parar de esperar simplesmente não existe.

(O acima assume que o processo já foi reparado em init . Caso contrário, seu pai pode estar mantendo-o por perto. Você pode ter que matar seu pai.)

    
por 15.12.2012 / 01:13
5

Toda vez que tenho um trabalho que está preso e os sinais 9 ou 15 não o matam, eu mando o sinal 30 (SIGPWR) e quase todas as vezes ele apagará. Não me lembro quando o envio do sinal de falta de energia não funcionou.

    
por 15.12.2012 / 07:54
2

Sim, há uma reinicialização ...

Normalmente, apesar de ser incapaz de matar -9 , um processo não é um problema tão grande, já que esses processos não estão ajudando muito o seu sistema, eles provavelmente são apenas zumbis. A única vez que me obrigou a reiniciar, a fim de me livrar dele, foi quando estava "ocupando" uma porta tcp que eu precisava usar.

    
por 15.12.2012 / 01:13

Tags