Un proceso zombie , que no debería estar usando ningún recurso (RAM y CPU), está acaparando un núcleo completo en mi instalación de escritorio Ubuntu 11.10 de 8 núcleos y 64 bits.
Esta es la salida de ps -el|grep Z
:
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 Z 1000 10317 1 99 80 0 - 0 exit ? 19:27:15 java <defunct>
... y aquí hay un extracto de top
:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10317 deltik 20 0 0 0 0 Z 100 0.0 1170:17 java <defunct>
1424 root 20 0 612m 193m 158m S 14 2.4 287:17.11 Xorg
12580 deltik 20 0 710m 135m 46m S 5 1.7 27:31.07 compiz
Así es como el proceso zombie llegó a existir:
- Abrí un Java JAR llamado minecraft.jar . Este lanzador descarga otro archivo JAR a ~ / .minecraft / bin / minecraft.jar
- Ese JAR se estaba ejecutando cuando bloqueé mi computadora
xscreensaver
. - Luego, ingresé mi contraseña para desbloquear la computadora y vi que la ventana de Minecraft estaba congelada.
- Traté de matarlo (PID 10317) con
gnome-system-monitor
. Se convirtió en un zombie. kill -9 10317
fue ineficazxkill
solo cerró la ventana titulada "Minecraft"; No cerró eljava
proceso subyacente .
Información relevante:
- El controlador de gráficos es FGLRX , y ha causado problemas notorios con Unity of Ubuntu 11.04 y Ubuntu 11.10 , que a veces incluyen un alto uso de CPU de
Xorg
ycompiz
.
Quiero saber:
- ¿De qué manera hay que destruir este proceso
java
sin reiniciar, si lo hay? - ¿Por qué está ocurriendo este problema?
- ¿Qué puedo hacer para evitar que este problema vuelva a ocurrir?
Respuestas:
El proceso ya ha sido reparentado
init
, por lo que debería ser cosechado (de lo contrario, la solución probablemente sería matar a su padre). Parece estar atascadoexit
, según elWCHAN
campo.En realidad, puede estar haciendo algo (como crear un volcado de núcleo) que terminará y desaparecerá por sí solo. Desafortunadamente, es probable que gire en el núcleo debido a un controlador dañado y, en última instancia, su única opción será reiniciar.
fuente
¿Lo has intentado
sudo kill -SIGCHLD 1
? Si esto no funciona, deberá reiniciar el sistema.Más sobre esto: /programming/6335730/zombie-process-cant-be-killed y /server/89759/init-never-reaping-zombie-defunct-processes
fuente
Los procesos de zombis han muerto pero aún no se han limpiado (cosechado es el término correcto) y, por
kill
lo tanto , no funciona en ellos como un proceso normal. El proceso todavía está en la tabla de procesos, pero cuando es un zombie, los recursos se han desasignado.Puede intentar enviar una
SIGCHLD
señal al proceso principal, de lo contrario, init debería haberlo recogido y lo cosechará eventualmente. Si desea acelerar el proceso, simplemente puede reiniciar.fuente
Este es un error del kernel. ¿Está utilizando ecryptfs para cifrar su directorio de inicio? Se ha registrado un error al respecto en launchpad.net.
fuente