Оболочка

Как создать фиктивный процесс зомби в Ubuntu 18.04 LTS

Как создать фиктивный процесс зомби в Ubuntu 18.04 LTS

Как тестировщикам программного обеспечения, нам иногда нужно знать, как зомби-процесс выглядит в нашей системе. Мы можем запускать на нем различные тесты, если точно знаем, какая программа и идентификатор процесса связаны с этим зомби-процессом.

Что такое зомби-процесс?

Зомби или несуществующий процесс в Linux - это процесс, который был завершен, но его запись все еще остается в таблице процессов из-за отсутствия соответствия между родительским и дочерним процессами. Обычно родительский процесс проверяет состояние своих дочерних процессов с помощью функции wait (). Когда дочерний процесс завершается, функция ожидания сигнализирует родителю о том, что процесс полностью завершен из памяти. Однако, если родительский процесс не может вызвать функцию ожидания для любого из своих дочерних процессов, дочерний процесс остается живым в системе как мертвый или зомби-процесс. Эти зомби-процессы могут накапливаться в вашей системе в больших количествах и влиять на ее производительность.

Когда вы запускаете команду top и работает зомби, это будет обозначено второй строкой вывода следующим образом:

Однако, если в вашей системе не запущен процесс-зомби, вы можете создать фиктивную версию для целей тестирования, как описано в этой статье. Мы запускаем этот процесс на Ubuntu 18.04.

Создание зомби-процесса

В этом разделе мы напишем программу на c для запуска зомби-процесса в нашей системе.

Откройте текстовый редактор и введите следующий код:

Код

#включать  #включать  #включать int main () pid_t child_pid; child_pid = вилка (); если (child_pid> 0) спать (60);  еще выход (0);  return 0; 

Сохраните этот файл как зомби.c

Зомби-процесс, созданный с помощью этого кода, будет работать в течение 60 секунд. Вы можете увеличить продолжительность, указав время (в секундах) в функции sleep ().

Откройте Терминал и выполните следующую команду, чтобы скомпилировать эту программу:

$ cc зомби.c -o зомби

Теперь будет создан исполняемый файл с именем zombie.

Обратите внимание, что вам нужно будет установить компилятор GNU C, если он еще не установлен в вашей системе, с помощью следующей команды:

$ sudo apt-get install build-essential

Теперь запустите зомби-программу с помощью следующей команды:

./зомби

Вы увидите следующий результат:

Вы можете использовать идентификатор родительского процесса (PPID) и идентификатор дочернего процесса (PID) во время тестирования; например, убив этот зомби-процесс с помощью команды kill.

Пока этот процесс запущен, вы можете просмотреть производительность системы в другом окне Терминала с помощью верхней команды. Вы сможете увидеть 1 процесс зомби во второй строке вывода.

Команда ps теперь также покажет этот несуществующий процесс и программу-зомби, отвечающую за него:

$ ps axo stat, ppid, pid, comm | grep -w несуществующий

Эта команда предоставит вам состояние, parentID, идентификатор процесса, программу, которая запускает процесс зомби (программа зомби, которую мы запускали в этом руководстве).

Теперь вы узнали, как создать простой фиктивный процесс зомби. Это даст вам представление о том, как он выглядит в вашей системе и как вы можете использовать его в целях тестирования.

Установите последнюю версию эмулятора Dolphin для Gamecube и Wii в Linux
Эмулятор Dolphin позволяет вам играть в выбранные вами игры Gamecube и Wii на персональных компьютерах (ПК) Linux. Являясь свободно доступным игровым...
Как использовать чит-движок GameConqueror в Linux
В статье содержится руководство по использованию чит-движка GameConqueror в Linux. Многие пользователи, играющие в игры на Windows, часто используют п...
Лучшие эмуляторы игровой консоли для Linux
В этой статье будет перечислено популярное программное обеспечение для эмуляции игровых консолей, доступное для Linux. Эмуляция - это уровень совмести...