Estoy ejecutando Bacula en una caja de RedHat. De vez en cuando, el almacenamiento daemon bacula-sd deja de funcionar y se vuelve <defunct>
.
[root@backup ~]# ps -ef | grep defunct | more
root 4801 29261 0 09:25 pts/5 00:00:00 grep defunct
root 5825 1 0 Oct18 ? 00:00:00 [bacula-sd] <defunct>
Mi pregunta es, ¿cómo puedo matar este proceso? Su padre es 1, que es init, que yo sepa, y no me gustaría matar el proceso init, ¿verdad?
'Normalmente' matar este proceso no funciona:
[root@backup ~]# kill -0 5825
[root@backup ~]# kill -9 5825
¡La ayuda es muy apreciada!
Editar: corriendo
[root@backup ~]# lsof -p 5825
produce el siguiente resultado:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bacula-sd 5825 root cwd DIR 253,0 4096 3801089 /root
bacula-sd 5825 root rtd DIR 253,0 4096 2 /
bacula-sd 5825 root txt REG 253,0 2110599 368004 /usr/local/sbin/bacula-sd
bacula-sd 5825 root mem REG 253,0 75284 389867 /usr/lib/libz.so.1.2.3
bacula-sd 5825 root mem REG 253,0 46680 3604521 /lib/libnss_files-2.5.so
bacula-sd 5825 root mem REG 253,0 936908 369115 /usr/lib/libstdc++.so.6.0.8
bacula-sd 5825 root mem REG 253,0 125736 3606807 /lib/ld-2.5.so
bacula-sd 5825 root mem REG 253,0 1602128 3606885 /lib/libc-2.5.so
bacula-sd 5825 root mem REG 253,0 208352 3606892 /lib/libm-2.5.so
bacula-sd 5825 root mem REG 253,0 125744 3606887 /lib/libpthread-2.5.so
bacula-sd 5825 root mem REG 253,0 25940 3604573 /lib/libacl.so.1.1.0
bacula-sd 5825 root mem REG 253,0 15972 3604535 /lib/libattr.so.1.1.0
bacula-sd 5825 root mem REG 253,0 46548 3606908 /lib/libgcc_s-4.1.2-20080102.so.1
bacula-sd 5825 root mem REG 253,0 56422480 366368 /usr/lib/locale/locale-archive
bacula-sd 5825 root 0r CHR 1,3 1545 /dev/null
bacula-sd 5825 root 1r CHR 1,3 1545 /dev/null
bacula-sd 5825 root 2r CHR 1,3 1545 /dev/null
bacula-sd 5825 root 3u CHR 9,128 6469 /dev/nst0
bacula-sd 5825 root 4u IPv4 1023380 TCP backup:bacula-sd (LISTEN)
bacula-sd 5825 root 5u IPv4 2693268 TCP backup:bacula-sd->backup:53957 (CLOSE_WAIT)
bacula-sd 5825 root 7u IPv4 3248683 TCP backup:bacula-sd->backup:57629 (CLOSE_WAIT)
bacula-sd 5825 root 8u IPv4 3250966 TCP backup:bacula-sd->backup:37650 (CLOSE_WAIT)
bacula-sd 5825 root 9u IPv4 3253908 TCP backup:bacula-sd->backup:37671 (CLOSE_WAIT)
Respuestas:
La única forma en que podría eliminar el proceso zombie / difunto, sería matar al padre. Como el padre es init (pid 1), eso también eliminaría su sistema.
Esto prácticamente te deja con dos opciones.
Yo iría con el segundo.
fuente
init
ya que no tiene un controlador de señal para SIGKILL. Verman 2 kill
.init
los trabajos es cosechar procesos zombies, por lo que si espera lo suficiente,init
debe limpiar los procesos zombies. Aunque, la mayoría de losinit
s deberían configurar el controlador deSIGCHLD
ser elSIG_IGN
que corrige esto.Podría intentar reiniciar init:
De lo contrario, no me preocuparía demasiado. No se está ejecutando y no está tomando ningún recurso y solo está allí para que el núcleo pueda recordarlo.
fuente
Compruebe si hubo pánico en el núcleo,
Compruebe si el proceso está en suspensión inactiva "D", donde está en modo kernel para alguna llamada al sistema que aún no ha regresado (ya sea kernel oops, o alguna otra razón) http://www.nabble.com/What-causes-an -procesador indescifrable - td20645581.html
fuente
Si un zombie tiene init como padre, entonces init ha dejado de funcionar correctamente. Una de las funciones de init es limpiar zombies. Si no lo hace, nadie más lo hará. Entonces, la única solución es reiniciar. Si init está roto, entonces un reinicio puede fallar, por lo que cerraría los servicios importantes, sincronizaría el sistema de archivos y luego presionaría el botón de encendido.
fuente
upstart
ysystemd
.Mantengamos el pánico bajo, ¿de acuerdo? Un proceso "difunto" o "zombie" no es un proceso . Es simplemente una entrada en la tabla de proceso, con un código de salida guardado. Por lo tanto, un zombie no tiene recursos, no requiere ciclos de CPU y no usa memoria, ya que no es un proceso . No te pongas todo raro y con picazón tratando de "matar" los procesos de zombies. Al igual que sus homónimos, no pueden ser asesinados, ya que ya están muertos. Pero a diferencia del tipo que come el cerebro, no dañan absolutamente a nadie y no morderán otros procesos.
No dejes que los procesos zombies te coman el cerebro. Sólo ingoralos.
fuente
Parece que tienes un proceso huérfano. Por lo que sé, la única forma de matarlos sería reiniciar la caja. Esto sucede en mis servidores ESX (que son Linux bajo el capó) de vez en cuando y un reinicio del host es la solución (desde el soporte de VMware).
Soy un chico de Windows, así que tómalo por lo que vale.
fuente