14 tammikuun, 2022

VITUX

luo nukkezombiprosessi Ubuntussa

ohjelmistojen testaajina meidän on joskus tiedettävä, miltä zombiprosessi näyttää järjestelmässämme. Voimme tehdä sille erilaisia testejä, jos tiedämme tarkalleen, mikä ohjelma ja prosessin tunnus liittyy kyseiseen zombiprosessiin.

mikä on Zombiprosessi?

Linuxissa zombi tai lakkautettu prosessi on prosessi, joka on saatu päätökseen, mutta sen kirjaus on edelleen prosessitaulukossa, koska vanhemman ja lapsen prosessit eivät vastaa toisiaan. Yleensä vanhempaprosessi tarkistaa lapsiprosessiensa tilan odotus () – toiminnon avulla. Kun lapsen prosessi on päättynyt, odotustoiminto viestittää vanhemman poistuvan prosessista kokonaan muistista. Jos vanhempi ei kuitenkaan kutsu jonotustoimintoa yhdellekään lapselleen, jää lapsiprosessi elämään järjestelmässä kuolleeksi tai zombiksi. Nämä zombie prosessit saattavat kerääntyä, suuria määriä, järjestelmään ja vaikuttaa sen suorituskykyyn.

kun ylintä komentoa ajetaan ja zombi on käynnissä, se merkitään lähdön toisella rivillä seuraavasti:

Zombiprosessi näkyy ylimmässä komennossa

kuitenkin, jos järjestelmässäsi ei ole käynnissä zombiprosessia, voit luoda nuken testaustarkoituksiin tässä artikkelissa kuvatulla tavalla. Suoritamme tätä prosessia Ubuntu 18.04: ssä.

Zombiprosessin luominen

tässä osiossa kirjoitetaan C-ohjelma zombiprosessin ajamiseksi järjestelmässämme.

avaa tekstieditori ja syötä seuraava koodi:

koodi

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

Tallenna tämä tiedosto zombiksi.C

tällä koodilla luotu zombiprosessi kestää 60 sekuntia. Voit lisätä ajan kestoa määrittämällä ajan (sekunteina) Uni () – funktiossa.

avaa pääte ja suorita seuraava komento tämän ohjelman kääntämiseksi:

$ cc zombie.c -o zombie

nyt luodaan suoritettava tiedosto, jonka nimi on zombie.

huomaa, että GNU C-kääntäjä on asennettava, jos sitä ei ole jo asennettu järjestelmääsi seuraavan komennon kautta:

$ sudo apt-get install build-essential

nyt suorita zombie ohjelma läpi seuraavan komennon:

./zombie

näet seuraavan tuotoksen:

zombitiedoston

ulostulo voit käyttää parent process ID: tä (PPID) ja child process ID: tä (PID) testauksen aikana, esimerkiksi lopettamalla tämän zombiprosessin kill-komennolla.

kun tämä prosessi on käynnissä, voit tarkastella järjestelmän suorituskykyä toisessa pääteikkunassa ylimmän komennon kautta. Voit nähdä 1 zombie prosessi läpi toisen rivin lähdön.

ps-komento näyttää nyt myös tämän lakkautetun prosessin ja siitä vastaavan zombie-ohjelman:

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

PS-komennon tulos

tämä komento antaa sinulle tilan, parentidin, prosessin ID: n, ohjelman, joka suorittaa zombie-prosessia (zombie-ohjelma, jonka ajoimme tässä opetusohjelmassa).

olet nyt oppinut luomaan yksinkertaisen nukkezombiprosessin. Tämä antaa sinulle käsityksen siitä, miltä se näyttää järjestelmässäsi ja miten voit käyttää sitä testaustarkoituksiin.

Kuinka luoda Nukkezombiprosessi Ubuntu 18.04 LTS: ssä

Vastaa

Sähköpostiosoitettasi ei julkaista.