Existem 5 processos que não podem ser eliminados kill -9 $PID
e a execução cat /proc/$PID/cmdline
travará a sessão atual. Talvez sejam processos zumbis.
A execução ps -ef or htop
também interromperá a sessão atual. Mas top
e ps -e
estão funcionando bem.
Portanto, parece que há dois problemas que o sistema de arquivos não está respondendo.
Esta é uma máquina de produção executando máquinas virtuais, portanto, a reinicialização não é uma opção.
Os seguintes IDs de processo não estão funcionando: 16181 16765 5985 7427 7547
O pai desses processos é init
├─collectd(16765)─┬─{collectd}(16776)
│ ├─{collectd}(16777)
│ ├─{collectd}(16778)
│ ├─{collectd}(16779)
│ ├─{collectd}(16780)
│ └─{collectd}(16781)
├─collectd(28642)───{collectd}(28650)
├─collectd(29868)─┬─{collectd}(29873)
│ ├─{collectd}(29874)
│ ├─{collectd}(29875)
│ └─{collectd}(29876)
E um dos processos qemu não está funcionando
|-qemu-system-x86(16181)-+-{qemu-system-x86}(16232)
| |-{qemu-system-x86}(16238)
| |-{qemu-system-x86}(16803)
| |-{qemu-system-x86}(17990)
| |-{qemu-system-x86}(17991)
| |-{qemu-system-x86}(17992)
| |-{qemu-system-x86}(18062)
| |-{qemu-system-x86}(18066)
| |-{qemu-system-x86}(18072)
| |-{qemu-system-x86}(18073)
| |-{qemu-system-x86}(18074)
| |-{qemu-system-x86}(18078)
| |-{qemu-system-x86}(18079)
| |-{qemu-system-x86}(18086)
| |-{qemu-system-x86}(18088)
| |-{qemu-system-x86}(18092)
| |-{qemu-system-x86}(18107)
| |-{qemu-system-x86}(18108)
| |-{qemu-system-x86}(18111)
| |-{qemu-system-x86}(18113)
| |-{qemu-system-x86}(18114)
| |-{qemu-system-x86}(18119)
| |-{qemu-system-x86}(23147)
| `-{qemu-system-x86}(27051)
linux
process
kill
zombie-process
Sam Stoelinga
fonte
fonte
/usr/bin/strace ps -ef
para ver onde exatamenteps -ef
está pendurado.ps -el
e em que estado esses processos estão?Respostas:
Você não tem zumbis.
cat /proc/$PID/cmdline
não teria nenhum problema com um zumbi. Sekill -9
não interromper o programa , significa que o programa está executando alguma operação de E / S ininterrupta. Isso geralmente indica uma das três coisas:Utilitários como esse
ps
podem travar se tentarem ler algumas informações, como o caminho do processo executável que o kernel não está fornecendo por um dos motivos acima.Tente
cat /proc/16181/syscall
ver qual processo 16181 está fazendo. Isso pode ou não funcionar, dependendo da distância do seu sistema.Se o problema for um sistema de arquivos de rede, você poderá desmontá-lo à força ou torná-lo online. Se o problema for um erro de kernel ou hardware, o que você pode fazer dependerá da natureza do erro. É altamente recomendável reinicializar (e atualizar para um kernel fixo ou substituir o hardware quebrado).
fonte
As outras respostas estão assumindo que estes são processos zumbis. Um processo zumbi é um processo que terminou a execução, mas ainda está na tabela de processos, caso o pai queira saber o status de saída. Isso é normal e
init
limpará automaticamente os processos zumbis atribuídos a ele.Os processos zumbis nunca devem travar nada, portanto parece que esse não é o seu problema. Se for uma chamada do sistema ou driver interrompido, o processo poderá estar em um estado ininterrupto. Há uma boa explicação aqui .
fonte
fork
êxito (quandonrpoc
é difícil ), porque eles ainda ocupam espaço na tabela de processos.Para encontrar processos zumbis no Linux:
Primeiro, você pode tentar enviar o sinal SIGCHLD para o processo pai do zumbi usando o comando kill. Observe que o comando acima fornece o PPID (PID do processo pai) de cada zumbi. No nosso exemplo, o PPID do zumbi é
555
.Se um processo zumbi ainda não desaparecer, você pode matar o processo pai (por exemplo, 555) do zumbi.
Uma vez que seu processo pai seja morto, o zumbi será adotado pelo processo init, que é o pai de todos os processos no Linux. O processo init pede periodicamente
wait()
para colher qualquer processo zumbi.fonte
Você só pode matar um zumbi matando seu pai. Um processo zumbi liberou todos os seus recursos e aguarda o status de saída ser escolhido pelo pai. Torna-se um zumbi quando o pai não executa um
wait
para pegar o status de saída do filho. Quando você mata o pai do zumbi,init
pega o status de saída e o zumbi finalmente morre.fonte
init
. Se um zumbi é reparadoinit
, você não pode matá-lo.