VITUX
mint szoftver tesztelők, néha meg kell tudni, hogy egy zombi folyamat néz ki, mint a rendszer. Különböző teszteket futtathatunk rajta, ha pontosan tudjuk, hogy melyik program és folyamatazonosító kapcsolódik ehhez a zombi folyamathoz.
mi a zombi folyamat?
a zombi vagy egy megszűnt folyamat Linuxban olyan folyamat, amely befejeződött, de a bejegyzése továbbra is a folyamattáblában marad, mivel a szülő és a gyermek folyamatok nem felelnek meg. Általában a szülő folyamat ellenőrzi a gyermekfolyamatok állapotát a wait () függvényen keresztül. Amikor a gyermekfolyamat befejeződött, a várakozás funkció jelzi a szülőnek, hogy teljesen kilépjen a folyamatból a memóriából. Ha azonban a szülő egyik gyermekének sem hívja meg a várakozási funkciót, akkor a gyermekfolyamat halott vagy zombi folyamatként életben marad a rendszerben. Ezek a zombi folyamatok nagy számban felhalmozódhatnak a rendszeren, és befolyásolhatják annak teljesítményét.
amikor a felső parancsot futtatja, és egy zombi fut, azt a kimenet második sora jelzi az alábbiak szerint:
ha azonban nincs zombi folyamat fut a rendszeren, létrehozhat egy próbabábut tesztelési célokra a cikkben leírtak szerint. Ezt a folyamatot Ubuntu 18.04-en futtatjuk.
Zombifolyamat létrehozása
ebben a részben egy C programot fogunk írni egy zombi folyamat futtatására a rendszerünkön.
nyisson meg egy szövegszerkesztőt, és írja be a következő kódot:
Kód
#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;}
mentse el ezt a fájlt zombiként.c
az ezzel a kóddal létrehozott zombi folyamat 60 másodpercig fut. Az időtartamot növelheti az alvás () funkcióban megadott idő (másodpercben) megadásával.
nyissa meg a terminált, és futtassa a következő parancsot a program lefordításához:
$ cc zombie.c -o zombie
most létrejön egy zombie nevű futtatható fájl.
kérjük, vegye figyelembe, hogy telepítenie kell a GNU C fordítót, ha az még nincs telepítve a rendszerére a következő paranccsal:
$ sudo apt-get install build-essential
most futtassa a zombi programot a következő paranccsal:
./zombie
a következő kimenetet fogja látni:
zombifájl kimenete a tesztelés során használhatja a szülő folyamatazonosítót (PPID) és a gyermek folyamatazonosítót (PID); például a zombi folyamat megölésével a kill paranccsal.
amíg ez a folyamat fut, a felső parancs segítségével megtekintheti a rendszer teljesítményét egy másik terminálablakban. Ön képes lesz arra, hogy 1 zombi folyamat a második sorban a kimenet.
a ps parancs most megmutatja ezt a megszűnt folyamatot és az érte felelős zombi programot is:
$ ps axo stat,ppid,pid,comm | grep -w defunct
ez a parancs megadja az állam, parentID, a folyamat azonosítója, a program, amely fut a zombi folyamat (a zombi program, amit futott ez a bemutató).
most megtanulta, hogyan kell létrehozni egy egyszerű dummy zombi folyamatot. Ez képet ad arról, hogyan néz ki a rendszerén, és hogyan használhatja tesztelési célokra.