VITUX
som programvare testere, vi noen ganger trenger å vite hvordan en zombie prosessen ser ut på systemet vårt. Vi kan kjøre ulike tester på det hvis vi vet spesifikt hvilket program OG prosess-ID som er knyttet til den zombieprosessen.
Hva er En Zombie Prosess?
en zombie eller en nedlagt prosess I Linux er en prosess som er fullført, men oppføringen er fortsatt i prosesstabellen på grunn av manglende korrespondanse mellom foreldre og barn prosesser. Vanligvis holder en overordnet prosess en kontroll på status for sine underordnede prosesser gjennom vent () – funksjonen. Når barneprosessen er ferdig, signaliserer ventefunksjonen foreldrene for å avslutte prosessen helt fra minnet. Men hvis foreldrene ikke ringer ventefunksjonen for noen av sine barn, forblir barneprosessen levende i systemet som en død eller zombieprosess. Disse zombie prosesser kan akkumulere, i stort antall, på systemet og påvirke ytelsen.
når du kjører toppkommandoen og en zombie kjører, vil den bli indikert av den andre linjen i utgangen som følger:
Men hvis det ikke er noen zombie prosess som kjører på systemet ditt, kan du lage en dummy for testformål som beskrevet i denne artikkelen. Vi kjører denne prosessen På Ubuntu 18.04.
Opprette En Zombie-Prosess
i denne delen vil vi skrive et c-program for å kjøre en zombieprosess på systemet vårt.
Åpne en tekstredigerer og skriv inn følgende kode:
Kode
#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;}
Lagre denne filen som zombie.c
zombie prosessen opprettet gjennom denne koden vil kjøre i 60 sekunder. Du kan øke tidsvarigheten ved å angi en tid (i sekunder) i hvilemodus () – funksjonen.
Åpne Terminalen og kjør følgende kommando for å kompilere dette programmet:
$ cc zombie.c -o zombie
Nå vil en kjørbar fil med navnet zombie bli opprettet.
vær oppmerksom på AT DU må installere GNU c-kompilatoren hvis DEN ikke allerede er installert på systemet ditt via følgende kommando:
$ sudo apt-get install build-essential
kjør nå zombie-programmet gjennom følgende kommando:
./zombie
du vil se følgende utgang:
Du kan bruke parent PROCESS ID (PPID) og child PROCESS ID (pid) under testing; for eksempel ved å drepe denne zombie prosessen gjennom kill kommandoen.
mens denne prosessen kjører, kan du vise systemytelsen i et Annet Terminalvindu via toppkommandoen. Du vil kunne se 1 zombie prosess gjennom den andre linjen av utgangen.
ps-kommandoen vil nå også vise denne nedlagte prosessen og zombieprogrammet som er ansvarlig for det:
$ ps axo stat,ppid,pid,comm | grep -w defunct
denne kommandoen vil gi deg staten, parentID, PROSESS-ID, programmet som kjører zombie-prosessen (zombie-programmet som vi kjørte i denne opplæringen).
Du har nå lært å lage en enkel dummy zombie prosess. Dette vil gi deg en ide om hvordan det ser ut på systemet ditt og hvordan du kan bruke det til testformål.