GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo crear un proceso zombie ficticio en Ubuntu 18.04 LTS

Como probadores de software, a veces necesitamos saber cómo se ve un proceso zombie 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 difunto 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 principal controla el estado de sus procesos secundarios a través de la función wait(). Cuando el proceso hijo ha terminado, la función de espera le indica al padre que salga por completo del proceso de la memoria. Sin embargo, si el padre falla al llamar a la función de espera para cualquiera 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 se está ejecutando un zombi, se indicará en la segunda línea de la salida de la siguiente manera:

Sin embargo, si no hay un proceso zombi ejecutándose en su sistema, puede crear un dummy con fines de prueba como se describe en este artículo. Estamos ejecutando este proceso en Ubuntu 18.04.

Creación de un proceso zombi

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

Abra un editor de texto e ingrese 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 zombie.c

El proceso zombie 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 deberá instalar el compilador GNU C si aún no está instalado en su sistema a través del siguiente comando:

$ sudo apt-get install build-essential

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

./zombie

Verá el siguiente resultado:

Puede utilizar el ID de proceso principal (PPID) y el ID de proceso secundario (PID) durante la prueba; por ejemplo, matando este proceso zombie 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. Podrá ver 1 proceso zombi a través de la segunda línea de la salida.

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

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

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

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


Ubuntu
  1. Cómo actualizar Ubuntu 18.04 LTS a Ubuntu 20.04 LTS

  2. Cómo crear imágenes de Docker con un Dockerfile en Ubuntu 16.04 LTS

  3. Cómo actualizar Ubuntu 15.10 a Ubuntu 16.04 LTS

  4. Cómo actualizar Ubuntu 14.04 LTS a Ubuntu 16.04 LTS

  5. Crear proceso zombie

Cómo actualizar Ubuntu 18.04 a Ubuntu 20.04 LTS

Cómo instalar Htop Viewer en Ubuntu 22.04 | 20.04 LTS

Cómo instalar Go en Ubuntu 22.04 LTS

Cómo instalar Go en Ubuntu 18.04 LTS

Cómo instalar Go en Ubuntu 20.04 LTS

Cómo matar procesos Zombie en Ubuntu