14 stycznia, 2022

VITUX

Utwórz fałszywy proces zombie w Ubuntu

jako testerzy oprogramowania czasami musimy wiedzieć, jak wygląda proces zombie w naszym systemie. Możemy przeprowadzić na nim różne testy, jeśli wiemy dokładnie, który program i identyfikator procesu jest powiązany z tym procesem zombie.

co to jest proces Zombie?

zombie lub nieistniejący proces w Linuksie jest procesem, który został ukończony, ale jego wpis nadal pozostaje w tabeli procesów z powodu braku zgodności między procesami nadrzędnymi i podrzędnymi. Zazwyczaj proces nadrzędny sprawdza stan swoich procesów potomnych za pomocą funkcji wait (). Po zakończeniu procesu potomnego funkcja wait sygnalizuje rodzicowi całkowite wyjście procesu z pamięci. Jeśli jednak rodzic nie wywoła funkcji wait dla żadnego z jego potomków, proces potomny pozostaje żywy w systemie jako martwy lub zombie. Te procesy zombie mogą gromadzić się w dużych ilościach w Twoim systemie i wpływać na jego wydajność.

kiedy uruchomisz polecenie top i uruchomiony zostanie zombie, zostanie to wskazane w drugiej linii wyjścia w następujący sposób:

proces Zombie pokazany w górnym poleceniu

jeśli jednak w systemie nie działa proces zombie, możesz utworzyć manekina do celów testowych, jak opisano w tym artykule. Uruchamiamy ten proces na Ubuntu 18.04.

tworzenie procesu Zombie

w tej sekcji napiszemy program c do uruchamiania procesu zombie w naszym systemie.

otwórz edytor tekstu i wpisz następujący kod:

Kod

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

Zapisz ten plik jako zombie.c

proces zombie utworzony za pomocą tego kodu będzie działał przez 60 sekund. Możesz zwiększyć czas trwania, określając czas (w sekundach) w funkcji sleep ().

Otwórz Terminal i uruchom następujące polecenie, aby skompilować ten program:

$ cc zombie.c -o zombie

teraz zostanie utworzony plik wykonywalny o nazwie zombie.

pamiętaj, że będziesz musiał zainstalować kompilator GNU C, jeśli nie jest on już zainstalowany w Twoim systemie za pomocą następującego polecenia:

$ sudo apt-get install build-essential

Teraz uruchom program zombie za pomocą następującego polecenia:

./zombie

zobaczysz następujące wyjście:

wyjście pliku zombie

podczas testowania można użyć ID procesu nadrzędnego (ppid) i ID procesu podrzędnego (PID); na przykład zabijając ten proces zombie za pomocą polecenia kill.

podczas gdy ten proces jest uruchomiony, możesz wyświetlić wydajność systemu w innym oknie terminala za pomocą polecenia top. Będziesz mógł zobaczyć 1 proces zombie przez drugą linię wyjścia.

polecenie ps pokaże teraz również ten nieistniejący proces i odpowiedzialny za niego program zombie:

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

wynik polecenia ps

to polecenie da Ci stan, parentID, ID procesu, program, który uruchamia proces zombie (program zombie, który uruchomiliśmy w tym samouczku).

teraz nauczyłeś się, jak stworzyć prosty proces dummy zombie. To daje wyobrażenie o tym, jak to wygląda w systemie i jak można go używać do celów testowych.

Jak stworzyć proces Dummy Zombie w Ubuntu 18.04 LTS

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.