GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come creare un processo zombi fittizio in Ubuntu 18.04 LTS

Come tester del 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 programma e ID processo è associato a quel processo zombie.

Cos'è un processo zombi?

Uno zombi 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 controlla lo stato dei suoi processi figli attraverso la funzione wait(). Quando il processo figlio è terminato, la funzione wait segnala al genitore di uscire completamente dal processo dalla memoria. Tuttavia, se il genitore non riesce a chiamare la funzione wait per uno qualsiasi dei suoi figli, il processo figlio rimane attivo nel sistema come processo morto o zombie. Questi processi zombie potrebbero accumularsi, in gran numero, sul tuo sistema e influire sulle sue prestazioni.

Quando esegui il comando in alto e uno zombi è in esecuzione, verrà indicato dalla seconda riga dell'output come segue:

Tuttavia, se non è presente alcun processo zombie in esecuzione sul tuo sistema, puoi creare un dummy a scopo di test come descritto in questo articolo. Stiamo eseguendo questo processo su Ubuntu 18.04.

Creazione di un processo zombi

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 tramite questo codice verrà eseguito per 60 secondi. Puoi aumentare la durata del tempo specificando un tempo (in secondi) nella funzione sleep().

Apri il Terminale ed esegui il seguente comando per compilare questo programma:

$ cc zombie.c -o zombie

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

Tieni presente che dovrai installare il compilatore GNU C se non è già installato sul tuo sistema tramite il seguente comando:

$ sudo apt-get install build-essential

Ora esegui il programma zombie tramite il seguente comando:

./zombie

Vedrai il seguente output:

È possibile utilizzare l'ID processo padre (PPID) e l'ID processo figlio (PID) durante il test; per esempio uccidendo questo processo zombie tramite il comando kill.

Mentre questo processo è in esecuzione, puoi visualizzare le prestazioni del sistema in un'altra finestra di Terminale tramite il comando in alto. Sarai in grado di vedere 1 processo zombi attraverso la seconda riga dell'output.

Il comando ps ora mostrerà anche questo processo defunto e il programma zombi responsabile di esso:

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

Questo comando ti darà lo stato, parentID, l'ID del processo, il programma che sta eseguendo il processo zombie (il programma zombie che abbiamo eseguito in questo tutorial).

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


Ubuntu
  1. Come aggiornare Ubuntu 18.04 LTS a Ubuntu 20.04 LTS

  2. Come creare immagini Docker con un Dockerfile su Ubuntu 16.04 LTS

  3. Come aggiornare Ubuntu 15.10 a Ubuntu 16.04 LTS

  4. Come aggiornare Ubuntu 14.04 LTS a Ubuntu 16.04 LTS

  5. Crea un processo di zombi

Come aggiornare Ubuntu 18.04 a Ubuntu 20.04 LTS

Come installare Htop Viewer su Ubuntu 22.04 | 20.04 LTS

Come installare Vai su Ubuntu 22.04 LTS

Come installare Vai su Ubuntu 18.04 LTS

Come installare Vai su Ubuntu 20.04 LTS

Come uccidere i processi zombi in Ubuntu