Gennaio 14, 2022

VITUX

Crea un processo zombie fittizio in Ubuntu

Come tester software, a volte abbiamo bisogno di sapere come appare un processo zombie sul nostro sistema. Possiamo eseguire vari test su di esso se sappiamo in modo specifico quale ID di programma e processo è associato a quel processo zombi.

Che cos’è un processo Zombie?

Uno zombie o un processo defunto in Linux è un processo che è stato completato, ma la sua voce rimane ancora nella tabella dei processi a causa della mancanza di corrispondenza tra i processi padre e figlio. Di solito, un processo genitore mantiene un controllo sullo stato dei suoi processi figlio attraverso la funzione wait (). Al termine del processo figlio, la funzione di attesa segnala al genitore di uscire completamente dal processo dalla memoria. Tuttavia, se il genitore non riesce a chiamare la funzione di attesa per uno dei suoi figli, il processo figlio rimane vivo nel sistema come processo morto o zombie. Questi processi zombie potrebbero accumularsi, in gran numero, sul sistema e influenzare le sue prestazioni.

Quando si esegue il comando top e uno zombie è in esecuzione, verrà indicato dalla seconda riga dell’output come segue:

processo Zombie mostrato in cima comando

Tuttavia, se non vi è alcun processo zombie in esecuzione sul vostro sistema, è possibile creare un manichino per scopi di test come descritto in questo articolo. Stiamo eseguendo questo processo su Ubuntu 18.04.

Creazione di un processo Zombie

In questa sezione, scriveremo un programma c per eseguire un processo zombie sul nostro sistema.

Apri un editor di testo e inserisci il seguente codice:

Codice

#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;}

Salva questo file come zombie.c

Il processo zombie creato attraverso questo codice verrà eseguito per 60 secondi. È possibile aumentare la durata del tempo specificando un tempo(in secondi) nella funzione sleep ().

Aprire il terminale ed eseguire il seguente comando per compilare questo programma:

$ cc zombie.c -o zombie

Ora verrà creato un file eseguibile con il nome di zombie.

si Prega di notare che è necessario installare il compilatore GNU C, se non è già installato sul vostro sistema attraverso il seguente comando:

$ sudo apt-get install build-essential

Ora eseguire zombie programma attraverso il seguente comando:

./zombie

verrà visualizzato il seguente output:

Uscita di zombie file

È possibile utilizzare l’ID di processo del genitore (PPID) e il bambino ID di processo (PID) durante il test; per esempio l’uccisione di questo processo zombie attraverso il comando kill.

Mentre questo processo è in esecuzione, è possibile visualizzare le prestazioni del sistema in un’altra finestra di terminale tramite il comando in alto. Sarete in grado di vedere 1 processo zombie attraverso la seconda riga dell’uscita.

Il comando ps ora mostra anche in questo defunta processo e lo zombie programma responsabile:

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

Risultato del comando ps

Questo comando darà lo stato, parentID, l’ID del processo, il programma che è in esecuzione il processo zombie (zombie programma che abbiamo incontrato in questo tutorial).

Ora hai imparato come creare un semplice processo di zombie fittizio. Questo ti darà un’idea di come appare sul tuo sistema e come puoi usarlo a scopo di test.

Come creare un processo di Zombie fittizio in Ubuntu 18.04 LTS

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.