Jako softwaroví testeři někdy potřebujeme vědět, jak vypadá zombie proces v našem systému. Můžeme na něm spustit různé testy, pokud víme konkrétně, který program a ID procesu je přidružen k tomuto procesu zombie.
Co je to Zombie proces?
Zombie nebo zaniklý proces v Linuxu je proces, který byl dokončen, ale jeho záznam stále zůstává v tabulce procesů kvůli nedostatečné korespondenci mezi nadřazenými a podřízenými procesy. Obvykle nadřazený proces udržuje kontrolu stavu svých podřízených procesů prostřednictvím funkce wait (). Když je podřízený proces dokončen, funkce čekání signalizuje rodiči, aby proces úplně ukončil z paměti. Pokud se však rodiči nepodaří zavolat funkci čekání pro žádné z jejích podřízených, podřízený proces zůstane v systému naživu jako mrtvý nebo zombie proces. Tyto procesy zombie se mohou hromadit ve velkém počtu ve vašem systému a ovlivňovat jeho výkon.
Když spustíte horní příkaz a běží zombie, bude to označeno druhým řádkem výstupu následovně:
Pokud však ve vašem systému není spuštěn žádný proces zombie, můžete pro účely testování vytvořit figurínu, jak je popsáno v tomto článku. Tento proces provádíme na Ubuntu 18.04.
Vytvoření procesu zombie
V této části napíšeme program c pro spuštění procesu zombie v našem systému.
Otevřete textový editor a zadejte následující kód:
Kód
#zahrnout#zahrnout #zahrnout int main () pid_t child_pid; child_pid = vidlice (); if (child_pid> 0) sleep (60); else exit (0); návrat 0;
Uložte tento soubor jako zombie.C
Proces zombie vytvořený prostřednictvím tohoto kódu poběží 60 sekund. Dobu trvání můžete prodloužit zadáním času (v sekundách) ve funkci sleep ().
Otevřete Terminál a spusťte následující příkaz ke kompilaci tohoto programu:
$ cc zombie.c -o zombie
Nyní bude vytvořen spustitelný soubor s názvem zombie.
Vezměte prosím na vědomí, že budete muset nainstalovat překladač GNU C, pokud již není nainstalován ve vašem systému pomocí následujícího příkazu:
$ sudo apt-get install build-essential
Nyní spusťte program zombie pomocí následujícího příkazu:
./ zombie
Uvidíte následující výstup:
Během testování můžete použít ID nadřazeného procesu (PPID) a ID podřízeného procesu (PID); například zabitím tohoto procesu zombie pomocí příkazu kill.
Když je tento proces spuštěn, můžete zobrazit výkon systému v jiném okně Terminálu pomocí horního příkazu. Ve druhém řádku výstupu uvidíte proces 1 zombie.
Příkaz ps nyní také zobrazí tento zaniklý proces a za něj zodpovědný zombie program:
$ ps axo stat, ppid, pid, komunikace | grep -w zaniklý
Tento příkaz vám poskytne stav, ID rodiče, ID procesu, program, který spouští proces zombie (zombie program, který jsme spustili v tomto kurzu).
Nyní jste se naučili, jak vytvořit jednoduchý fiktivní proces zombie. Získáte představu o tom, jak vypadá ve vašem systému a jak jej můžete použít pro účely testování.