¿Qué es un archivo zombie?
Un archivo zombie es un archivo generado por piratas informáticos que utilizan herramientas de red o sus propias herramientas para atacar servidores o computadoras grandes. Si importa este archivo, su computadora se infectará con este archivo como si fuera un archivo. virus. La mayoría de las funciones son para realizar operaciones como DDOS en la computadora remota especificada.
El proceso zombie se refiere al proceso principal que ha salido, y una vez que el proceso muere, ningún proceso lo acepta y se convierte en un proceso zombie. (zombie) Proceso
Cómo generar un proceso zombie:
Cuando un proceso llama al comando de salida para finalizar su vida, en realidad no se destruye, sino que deja un proceso llamado La estructura de datos del proceso zombie (Zombie) (la llamada al sistema sale, su función es hacer que el proceso salga, pero solo se limita a convertir un proceso normal en un proceso zombie y no puede destruirlo por completo). Entre los estados de los procesos de Linux, un proceso zombie
es un tipo muy especial. Ha cedido casi todo el espacio de memoria, no tiene código ejecutable y no se puede programar. Solo retiene uno en la lista de procesos. La ubicación registra el estado de salida y otra información del proceso para que otros procesos la recopilen. Además, el proceso zombie ya no ocupa espacio en la memoria. Necesita que su proceso principal recopile su cadáver. Si su proceso principal no instala la función de procesamiento de señales SIGCHLD, llama a esperar o esperar a que finalice el proceso secundario y no ignora explícitamente la señal. en el estado zombie, si el proceso principal finaliza en este momento, el proceso de inicio se hará cargo automáticamente del proceso secundario y recolectará sus cadáveres. Pero si el proceso principal es un bucle y no finaliza, entonces el proceso secundario permanecerá en un estado zombie. Es por eso que a veces hay muchos procesos zombies en el sistema.
Cómo verificar procesos zombies:
Usando el comando ps, puedes ver que el proceso marcado Z es un proceso zombie.
Cómo borrar procesos zombies:
1. Reescribe el proceso padre y recoge su cadáver después de la muerte del proceso hijo. El método específico consiste en hacerse cargo de la señal SIGCHLD. Después de que el proceso hijo muere, la señal SIGCHLD se envía al proceso padre. Después de que el proceso padre recibe esta señal, ejecuta la función waitpid () para recopilar el cadáver del proceso hijo. Esto se basa en el principio de que incluso si el proceso principal no llama a esperar, el kernel le enviará un mensaje SIGCHLD, aunque el procesamiento predeterminado es ignorarlo. Si desea responder a este mensaje, puede configurar un procesamiento. función.
2. Mata el proceso padre. Una vez que el proceso principal muere, el proceso zombie se convierte en un "proceso huérfano" y se adopta para el proceso número 1. Init siempre será responsable de limpiar el proceso zombie. Todos los procesos zombies que generó también desaparecieron.
Cómo borrar el proceso zombie:
1. Reescribe el proceso padre y recoge el cadáver del proceso hijo después de su muerte. El método específico consiste en hacerse cargo de la señal SIGCHLD. Después de que el proceso hijo muere, la señal SIGCHLD se envía al proceso padre. Después de que el proceso padre recibe esta señal, ejecuta la función waitpid () para recopilar el cadáver del proceso hijo. Esto se basa en el principio de que incluso si el proceso principal no llama a esperar, el kernel le enviará un mensaje SIGCHLD, aunque el procesamiento predeterminado es ignorarlo. Si desea responder a este mensaje, puede configurar un procesamiento. función.
2. Mata el proceso padre. Una vez que el proceso principal muere, el proceso zombie se convierte en un "proceso huérfano" y se adopta para el proceso número 1. Init siempre será responsable de limpiar el proceso zombie. Todos los procesos zombies que generó también desaparecen