GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak vytvořit fiktivní zombie proces v Ubuntu 18.04 LTS

Jako testeři softwaru někdy potřebujeme vědět, jak proces zombie vypadá v našem systému. Můžeme na něm spouštět různé testy, pokud konkrétně víme, který program a ID procesu je přidružen k tomuto zombie procesu.

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é shodě mezi nadřazeným a podřízeným procesem. Nadřazený proces obvykle kontroluje stav svých podřízených procesů pomocí funkce wait(). Po dokončení podřízeného procesu funkce čekání signalizuje rodiči, aby zcela opustil proces z paměti. Pokud však rodič nedokáže zavolat funkci čekání pro některého ze svých potomků, podřízený proces zůstane v systému živý jako mrtvý nebo zombie proces. Tyto zombie procesy se mohou nahromadit ve velkém množství ve vašem systému a ovlivnit jeho výkon.

Když spustíte příkaz top a běží zombie, bude to označeno na druhém řádku výstupu následovně:

Pokud však ve vašem systému neběží žádný proces zombie, můžete vytvořit figurínu pro účely testování, jak je popsáno v tomto článku. Tento proces spouštíme na Ubuntu 18.04.

Vytvoření zombie procesu

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

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

Uložte tento soubor jako zombie.c

Proces zombie vytvořený tímto kódem 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 pro kompilaci tohoto programu:

$ cc zombie.c -o zombie

Nyní bude vytvořen spustitelný soubor se jménem zombie.

Vezměte prosím na vědomí, že budete muset nainstalovat kompilátor GNU C, pokud ještě není nainstalován ve vašem systému pomocí následujícího příkazu:

$ sudo apt-get install build-essential

Nyní spusťte zombie program 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 zombie procesu pomocí příkazu kill.

Zatímco tento proces běží, můžete zobrazit výkon systému v jiném okně terminálu pomocí příkazu top. Na druhém řádku výstupu uvidíte 1 proces zombie.

Příkaz ps nyní také zobrazí tento zaniklý proces a zombie program, který je za něj zodpovědný:

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

Tento příkaz vám dá stav, parentID, ID procesu, program, který spouští proces zombie (program zombie, který jsme spustili v tomto tutoriálu).

Nyní jste se naučili, jak vytvořit jednoduchý fiktivní zombie proces. To vám dá představu o tom, jak to vypadá ve vašem systému a jak jej můžete použít pro účely testování.


Ubuntu
  1. Jak upgradovat Ubuntu 15.10 na Ubuntu 16.04 LTS

  2. Jak upgradovat Ubuntu 14.04 LTS na Ubuntu 16.04 LTS

  3. Vytvořte proces zombie

  1. Jak upgradovat Ubuntu 18.04 LTS na Ubuntu 20.04 LTS

  2. Jak vytvořit Docker Images pomocí Dockerfile na Ubuntu 16.04 LTS

  3. Jak vytvořit a spustit skript Shell v Ubuntu 20.04 LTS

  1. Jak vytvořit a spustit program C pomocí Ubuntu 20.04 LTS

  2. Jak vytvořit Dummy Zombie Process v programovacím jazyce C na Debianu 10

  3. Jak vytvořit soubor ISO v Ubuntu 18.04 LTS