enero 14, 2022

VITUX

Crear un proceso zombi ficticio en Ubuntu

Como probadores de software, a veces necesitamos saber cómo se ve un proceso zombi en nuestro sistema. Podemos ejecutar varias pruebas en él si sabemos específicamente qué ID de programa y proceso está asociado con ese proceso zombi.

¿Qué es un proceso Zombi?

Un proceso zombi o extinto en Linux es un proceso que se ha completado, pero su entrada aún permanece en la tabla de procesos debido a la falta de correspondencia entre los procesos padre e hijo. Por lo general, un proceso padre mantiene un control del estado de sus procesos hijos a través de la función wait (). Cuando el proceso hijo ha terminado, la función wait indica al padre que salga completamente del proceso de la memoria. Sin embargo, si el padre no llama a la función de espera para ninguno de sus hijos, el proceso hijo permanece vivo en el sistema como un proceso muerto o zombi. Estos procesos zombis pueden acumularse, en grandes cantidades, en su sistema y afectar su rendimiento.

Cuando ejecuta el comando superior y un zombi está corriendo, se indicará en la segunda línea de la salida de la siguiente manera:

Proceso zombi que se muestra en el comando superior

Sin embargo, si no hay ningún proceso zombi en ejecución en su sistema, puede crear un maniquí para fines de prueba como se describe en este artículo. Estamos ejecutando este proceso en Ubuntu 18.04.

Crear un proceso Zombi

En esta sección, escribiremos un programa en c para ejecutar un proceso zombi en nuestro sistema.

Abra un editor de texto e introduzca el siguiente código:

Código

#include <stdlib.h>#include <sys/types.h>#include <unistd.h>int main (){pid_t child_pid;child_pid = fork ();if (child_pid > 0) {sleep (60);}else {exit (0);}return 0;}

Guarde este archivo como zombi.c

El proceso zombi creado a través de este código se ejecutará durante 60 segundos. Puede aumentar la duración del tiempo especificando un tiempo (en segundos) en la función sleep ().

Abra la Terminal y ejecute el siguiente comando para compilar este programa:

$ cc zombie.c -o zombie

Ahora se creará un archivo ejecutable con el nombre de zombie.

Tenga en cuenta que necesitará instalar el compilador C de GNU si ya no está instalado en su sistema a través del siguiente comando:

$ sudo apt-get install build-essential

Ahora ejecute el programa zombie a través del siguiente comando:

./zombie

Verá la siguiente salida:

Salida del archivo zombi

Puede usar el ID de proceso padre (PPID) y el ID de proceso hijo (PID) durante la prueba; por ejemplo, matando este proceso zombi a través del comando kill.

Mientras se ejecuta este proceso, puede ver el rendimiento del sistema en otra ventana de Terminal a través del comando superior. Usted será capaz de ver 1 proceso zombie a través de la segunda línea de la salida.

El comando ps ahora también mostrará este proceso desaparecido y el programa zombi responsable de él:

$ ps axo stat,ppid,pid,comm | grep -w defunct

Resultado del comando ps

Este comando le dará el estado, ParentId, el ID del proceso, el programa que está ejecutando el proceso zombi (el programa zombi que ejecutamos en este tutorial).

Ahora has aprendido a crear un proceso de zombi ficticio simple. Esto le dará una idea de cómo se ve en su sistema y cómo puede usarlo para fines de prueba.

Cómo crear un Proceso Zombi Ficticio en Ubuntu 18.04 LTS

Deja una respuesta

Tu dirección de correo electrónico no será publicada.