Ainda vivo, ainda vivo depois de matar -9 / SIGKILL [duplicado]

9

Um processo do apache2 ficou preso no meu servidor e causou problemas com outros serviços. (problema original: kerneloops após a desconexão do hardware USB)

root@server:~# ps aux | grep apache2 | grep -v grep
www-data 12917  0.0  0.1 412148 16156 ?        D    Jun27   0:00 /usr/sbin/apache2 -k start

Naturalmente, eu kill d. ainda está vivo. então eu kill -9 d isso. Ainda está "vivo".

Agora, é aqui que a questão coloca serverfault / unix & linux-worthy: Existe uma maneira de obter a porta 443 de volta sem fazendo a coisa óbvia: reinicializar? O Iptables está instalado.

Atualização: eu poderia não resolver o problema com a reinicialização. A abordagem geral (usar lsof ou /proc/$PID/fd para descobrir qual e se livrar dessa unidade), conforme descrito aqui e na "duplicata", poderia ter funcionado se não fosse por defeitos adicionais (provavelmente) de hardware.

    
por anx 29.06.2015 / 19:46

1 resposta

24

O estado "D" é impossível de matar. Um processo só pode ser eliminado quando está no espaço do usuário (seu código está fazendo o que está fazendo). Quando uma chamada de sistema é chamada (mais comumente o problema são operações de entrada e saída), o kernel assume o controle até que a chamada do sistema retorne. Enquanto no modo kernel, o processo não pode ser eliminado. Anular o código do kernel é perigoso para todo o sistema e, além disso, também é uma questão filosófica se um processo no modo kernel deve ouvir os sinais, dado que não está no controle.

Portanto, a única maneira de sair do modo kernel é um tempo limite / interrupção do próprio código. Operações de E / S em unidades de rede geralmente são superprotetoras e não querem desistir para evitar a perda de dados. Se a sua unidade de rede estiver inacessível (ou qualquer outra E / S, o acesso ao dispositivo / ... falhará), seu processo poderá esperar quase indefinidamente no estado "disco zumbi".

Se a unidade incorreta for desmontada à força, os processos geralmente morrem.

    
por 29.06.2015 / 20:46

Tags