Skall

Hvordan lage en Dummy Zombie-prosess i Ubuntu 18.04 LTS

Hvordan lage en Dummy Zombie-prosess i Ubuntu 18.04 LTS

Som programvaretestere trenger vi noen ganger å vite hvordan en zombieprosess ser ut på systemet vårt. Vi kan kjøre forskjellige tester på den 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 forblir fremdeles i prosesstabellen på grunn av manglende samsvar mellom foreldre- og barneprosessene. Vanligvis holder en foreldreprosess kontroll på statusen til barneprosessene sine gjennom ventetiden (). Når barneprosessen er ferdig, signaliserer ventefunksjonen foreldrene om å avslutte prosessen helt fra minnet. Men hvis foreldrene ikke klarer å ringe ventefunksjonen til noen av barna sine, forblir barneprosessen i live som en død eller zombieprosess. Disse zombieprosessene kan akkumuleres i stort antall på systemet ditt 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:

Imidlertid, hvis det ikke er noen zombieprosess som kjører på systemet ditt, kan du opprette 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

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

Lagre denne filen som zombie.c

Zombieprosessen opprettet gjennom denne koden vil kjøre i 60 sekunder. Du kan øke varigheten ved å spesifisere 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 det opprettes en kjørbar fil med navnet zombie.

Vær oppmerksom på at du må installere GNU C-kompilatoren hvis den ikke allerede er installert på systemet ditt gjennom følgende kommando:

$ sudo apt-get install build-essential

Kjør nå zombieprogrammet gjennom følgende kommando:

./ zombie

Du vil se følgende utdata:

Du kan bruke foreldreprosess-ID (PPID) og underordnet prosess-ID (PID) under testing; for eksempel ved å drepe denne zombieprosessen gjennom drepekommandoen.

Mens denne prosessen kjører, kan du se systemytelsen i et annet terminalvindu gjennom den øverste kommandoen. Du vil kunne se en zombieprosess gjennom den andre linjen i utgangen.

PS-kommandoen vil nå også vise denne nedlagte prosessen og zombieprogrammet som er ansvarlig for den:

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

Denne kommandoen vil gi deg staten, foreldre-ID, prosess-ID, programmet som kjører zombieprosessen (zombieprogrammet som vi kjørte i denne opplæringen).

Du har nå lært hvordan du lager 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.

Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...
Nyttige verktøy for Linux-spillere
Hvis du liker å spille spill på Linux, er sjansen stor for at du har brukt apper og verktøy som Wine, Lutris og OBS Studio for å forbedre spilloppleve...
HD Remastered Games for Linux som aldri hadde en Linux-utgave tidligere
Mange spillutviklere og utgivere kommer med HD-remaster av gamle spill for å forlenge franchisetiden, vennligst fans som ber om kompatibilitet med mod...