Найти тему
INFINITY

Как проверить и убить процессы зомби в Debian 10

Оглавление

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

В этом руководстве я собираюсь продемонстрировать, как вы можете проверить и уничтожить зомби-процесс в Debian 10.

Предпосылка

У вас должны быть права суперпользователя и хотя бы одна запись процесса зомби в таблице процессов.

Как проверить процесс зомби в Debian 10

Через командную строку

Вы можете получить список всех процессов, запущенных в вашей системе, используя команду top, как показано ниже.

-2

Чтобы проверить наличие зомби-процесса на вашем компьютере Debian 10, вам необходимо открыть терминал и выполнить следующую команду.

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

-3

Поскольку на нашей машине не запущен ни один процесс-зомби. Поэтому на следующем шаге мы создадим фиктивный процесс зомби, чтобы я мог его убить. Если бы был запущен процесс зомби, команда вернула бы его PID и т. Д.

Через графический интерфейс

То же самое можно сделать с помощью графического интерфейса. Откройте служебную программу системного монитора на панели управления, как показано ниже.

-4

Инструмент покажет вам список всех процессов, запущенных на вашем компьютере. Вы также можете прокручивать вверх и вниз, чтобы увидеть все процессы.

-5

Как создать фиктивный процесс-зомби в Debian 10

Откройте текстовый редактор и вставьте следующий код. Код скопирован с  https://vitux.com/how-to-create-a-dummy-zombie-process-in-ubuntu/

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

Сохраните файл как zombie.c. Зомби-процесс будет длиться 60 секунд. Однако вы можете настроить время в режиме сна.

Затем откройте терминал и выполните следующую команду, чтобы скомпилировать эту программу. Это создаст исполняемый целевой файл.

cc zombie.c -o zombie

Затем выполните следующую команду, чтобы создать зомби-процесс, который будет активен в течение шестидесяти секунд.

./zombie

-6

Как убить зомби-процесс

Через командную строку

Теперь у нас есть зомби-процесс, поэтому мы также можем его убить.

Откройте терминал и выполните следующую команду, чтобы узнать идентификатор родительского процесса зомби.

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

На следующем снимке экрана видно, что идентификатор родительского процесса является второй записью в результате выполнения команды.

-7

Выполните следующую команду на терминале с правами суперпользователя, и это убьет процесс зомби.

kill -9 <PPID> (which is 2844 in our case)

Если вы проверите процессы с помощью команды ps, вы не заметите никаких зомби или неработающих процессов, запущенных в вашей системе.

Через графический интерфейс

Опять же, откройте утилиту системного монитора на панели инструментов и перечислите процессы всех пользователей. Вы заметите, что на вашем компьютере запущен единственный зомби-процесс.

-8

Теперь щелкните правой кнопкой мыши процесс зомби и нажмите кнопку «убить», чтобы убить процесс. Вам будет предложено подтвердить. Щелкните "Kill Process" для подтверждения. Вам также будет предложено ввести учетные данные пользователя root.

Если вам эта статья была полезна с вас лайк подписка!