Para responder a la pregunta número 1:
Cuando un proceso genera procesos secundarios, cada uno de los secundarios tiene su propio PID. El PPID de cada hijo (ID de proceso principal) es el PID de su proceso principal. Si el padre muere, los procesos secundarios quedan huérfanos. Los procesos huérfanos son recogidos automáticamente por el proceso de inicio del sistema que tiene un PID de 1.
Problema
Su secuencia de comandos probablemente esté creando zombis por tu kill -9
comandos; como se sugiere en jjlin, la respuesta también nunca es una buena práctica para eliminar abruptamente algún proceso sin verse obligado a hacerlo.
Desde man bash
podemos leer:
Los procesos marcados como
Respuesta n.º 1: El proceso iniciar tiene el PID 1 y para esto Linux les asigna el padre con PID 1 (porque los asigna a init ).
Respuesta #2: No pueden ser asesinados simplemente porque simplemente están muertos ... si su padre es init
probablemente sea suficiente esperar un tiempo.
Para eliminar zombis de un sistema, la señal SIGCHLD se puede enviar al padre manualmente, usando el comando kill. Si el proceso principal aún se niega a cosechar al zombi, el siguiente paso sería eliminar el proceso principal. Cuando un proceso pierde su padre, init se convierte en su nuevo padre. Init ejecuta periódicamente la llamada al sistema de espera para cosechar cualquier zombi con init como padre. [1]
Por si te surge esta idea un día u otro:a #kill -9 init
El proceso con privilegio de root es el software equivalente a desconectar físicamente la computadora de la red eléctrica. [:-)]
Sin embargo procesos zombis se puede identificar en la salida de ps
comando por la presencia de una "Z" en el STAT columna. Puede usar la siguiente línea para identificarlos fácilmente
ps -aux | grep Z
Algunas referencias sobre Linux zombies world :
- ¿Hay alguna forma de eliminar un proceso zombi sin reiniciar?
- ¿Qué son los procesos zombies?
- Cómo matar el proceso zombie
- [1] De muchas fuentes en la red