januari 14, 2022

VITUX

Maak een dummy zombie proces in Ubuntu

Als software testers, moeten we soms weten hoe een zombie proces eruit ziet op ons systeem. We kunnen er verschillende tests op Uitvoeren als we specifiek weten welk programma en proces ID geassocieerd is met dat zombie proces.

Wat is een Zombie-proces?

een zombie of een niet meer bestaand proces in Linux is een proces dat is voltooid, maar zijn vermelding blijft nog steeds in de procestabel vanwege gebrek aan correspondentie tussen de ouder-en dochterprocessen. Meestal houdt een ouderproces een controle op de status van zijn dochterprocessen via de wait() functie. Wanneer het dochterproces is voltooid, geeft de wachtfunctie de ouder het signaal om het proces volledig uit het geheugen te verlaten. Echter, als de ouder er niet in slaagt om de wacht functie voor een van zijn kinderen aan te roepen, blijft het kind proces levend in het systeem als een dood of zombie proces. Deze zombie-processen kunnen zich in grote aantallen op uw systeem ophopen en de prestaties ervan beïnvloeden.

wanneer u het bovenste commando uitvoert en een zombie draait, wordt dit als volgt aangegeven door de tweede regel van de uitvoer:

Zombie proces getoond in top commando

echter, als er geen zombie proces draait op uw systeem, kunt u een dummy maken voor testdoeleinden zoals beschreven in dit artikel. We draaien dit proces op Ubuntu 18.04.

een Zombie-proces aanmaken

In deze sectie zullen we een c-programma schrijven om een zombie-proces op ons systeem uit te voeren.

Open een teksteditor en voer de volgende code in:

Code

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

sla dit bestand op als zombie.c

het zombie-proces dat met deze code wordt aangemaakt, zal 60 seconden duren. U kunt de tijdsduur verhogen door een tijd(in seconden) in de functie sleep() op te geven.

Open de Terminal en voer het volgende commando uit om dit programma te compileren:

$ cc zombie.c -o zombie

nu wordt een uitvoerbaar bestand met de naam zombie gemaakt.

houd er rekening mee dat u de GNU C-compiler moet installeren als deze al niet op uw systeem is geïnstalleerd met het volgende commando:

$ sudo apt-get install build-essential

Voer nu het zombie-programma uit via het volgende commando:

./zombie

u zult de volgende uitvoer zien:

uitvoer van zombie-bestand

u kunt de parent process ID (PPID) en child process ID (PID) gebruiken tijdens het testen; bijvoorbeeld door dit zombie-proces te stoppen met het kill-commando.

terwijl dit proces draait, kunt u de systeemprestaties in een ander terminalvenster bekijken via het commando top. U zult in staat zijn om te zien 1 zombie proces door de tweede regel van de output.

het ps commando zal nu ook dit proces tonen en het zombie programma dat ervoor verantwoordelijk is:

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

resultaat van ps commando

dit commando geeft je de status, parentID, het proces ID, het programma dat het zombie proces draait (het zombie programma dat we in deze tutorial hebben uitgevoerd).

u hebt nu geleerd hoe u een eenvoudig dummy zombie proces kunt maken. Dit geeft u een idee van hoe het eruit ziet op uw systeem en hoe u het kunt gebruiken voor testdoeleinden.

een Dummy Zombie-proces maken in Ubuntu 18.04 LTS

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.