Skal

Sådan oprettes en Dummy Zombie-proces i Ubuntu 18.04 LTS

Sådan oprettes en Dummy Zombie-proces i Ubuntu 18.04 LTS

Som softwaretestere er vi undertiden nødt til at vide, hvordan en zombieproces ser ud på vores system. Vi kan køre forskellige tests på det, hvis vi specifikt ved, hvilket program og proces-ID, der er knyttet til den zombieproces.

Hvad er en Zombie-proces?

En zombie eller en afviklet proces i Linux er en proces, der er afsluttet, men dens indtastning forbliver stadig i procestabellen på grund af manglende korrespondance mellem forælder- og underordnede processer. Normalt holder en overordnet proces kontrol med status for sine underordnede processer gennem funktionen wait (). Når barneprocessen er afsluttet, signalerer ventefunktionen, at forældrene helt forlader processen fra hukommelsen. Men hvis forældrene ikke kalder ventefunktionen til nogen af ​​sine børn, forbliver barneprocessen i live i systemet som en død eller zombie proces. Disse zombieprocesser akkumuleres muligvis i stort antal på dit system og påvirker dets ydeevne.

Når du kører den øverste kommando, og en zombie kører, vil den blive angivet med den anden linje i output som følger:

Hvis der imidlertid ikke kører nogen zombieproces på dit system, kan du oprette en dummy til testformål som beskrevet i denne artikel. Vi kører denne proces på Ubuntu 18.04.

Oprettelse af en Zombie-proces

I dette afsnit vil vi skrive et c-program til at køre en zombieproces på vores system.

Åbn en teksteditor, og indtast følgende kode:

Kode

#omfatte  #omfatte  #omfatte int main () pid_t child_pid; child_pid = fork (); hvis (child_pid> 0) sleep (60);  andet exit (0);  returner 0; 

Gem denne fil som zombie.c

Zombie-processen oprettet gennem denne kode vil køre i 60 sekunder. Du kan øge varigheden ved at angive en tid (i sekunder) i sleep () -funktionen.

Åbn terminalen, og kør følgende kommando for at kompilere dette program:

$ cc zombie.c-o zombie

Nu oprettes en eksekverbar fil med navnet zombie.

Bemærk, at du bliver nødt til at installere GNU C-kompilatoren, hvis den ikke allerede er installeret på dit system ved hjælp af følgende kommando:

$ sudo apt-get install build-essential

Kør nu zombieprogrammet gennem følgende kommando:

./ zombie

Du får vist følgende output:

Du kan bruge det overordnede proces-id (PPID) og underordnede proces-id (PID) under testning; for eksempel ved at dræbe denne zombieproces gennem kill-kommandoen.

Mens denne proces kører, kan du se systemets ydeevne i et andet Terminal-vindue gennem den øverste kommando. Du vil være i stand til at se 1 zombie-proces gennem outputens anden linje.

PS-kommandoen viser nu også denne nedlagte proces og zombieprogrammet, der er ansvarligt for det:

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

Denne kommando giver dig staten, parentID, proces-id, det program, der kører zombie-processen (zombie-programmet, som vi kørte i denne vejledning).

Du har nu lært, hvordan man opretter en simpel dummy-zombie-proces. Dette giver dig en idé om, hvordan det ser ud på dit system, og hvordan du kan bruge det til testformål.

HD Remastered-spil til Linux, der aldrig tidligere havde haft en Linux-udgivelse
Mange spiludviklere og udgivere kommer med HD-remaster af gamle spil for at forlænge franchisens levetid. Venligst fans, der anmoder om kompatibilitet...
Sådan bruges AutoKey til at automatisere Linux-spil
AutoKey er et desktopautomatiseringsværktøj til Linux og X11, programmeret i Python 3, GTK og Qt. Ved hjælp af dets scripting og MACRO-funktionalitet ...
Sådan vises FPS-tæller i Linux-spil
Linux-spil fik et stort skub, da Valve annoncerede Linux-support til Steam-klient og deres spil i 2012. Siden da har mange AAA- og indiespil fundet ve...