Зомби-процесс - это тип процесса, который завершен, но его запись все еще остается в таблице процессов из-за отсутствия связи между дочерним и родительским процессом.
В этом руководстве я собираюсь продемонстрировать, как вы можете проверить и уничтожить зомби-процесс в Debian 10.
Предпосылка
У вас должны быть права суперпользователя и хотя бы одна запись процесса зомби в таблице процессов.
Как проверить процесс зомби в Debian 10
Через командную строку
Вы можете получить список всех процессов, запущенных в вашей системе, используя команду top, как показано ниже.
Чтобы проверить наличие зомби-процесса на вашем компьютере Debian 10, вам необходимо открыть терминал и выполнить следующую команду.
ps axo stat,ppid,pid,comm | grep -w defunct
Поскольку на нашей машине не запущен ни один процесс-зомби. Поэтому на следующем шаге мы создадим фиктивный процесс зомби, чтобы я мог его убить. Если бы был запущен процесс зомби, команда вернула бы его PID и т. Д.
Через графический интерфейс
То же самое можно сделать с помощью графического интерфейса. Откройте служебную программу системного монитора на панели управления, как показано ниже.
Инструмент покажет вам список всех процессов, запущенных на вашем компьютере. Вы также можете прокручивать вверх и вниз, чтобы увидеть все процессы.
Как создать фиктивный процесс-зомби в 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
Как убить зомби-процесс
Через командную строку
Теперь у нас есть зомби-процесс, поэтому мы также можем его убить.
Откройте терминал и выполните следующую команду, чтобы узнать идентификатор родительского процесса зомби.
ps axo stat,ppid,pid,comm | grep -w defunct
На следующем снимке экрана видно, что идентификатор родительского процесса является второй записью в результате выполнения команды.
Выполните следующую команду на терминале с правами суперпользователя, и это убьет процесс зомби.
kill -9 <PPID> (which is 2844 in our case)
Если вы проверите процессы с помощью команды ps, вы не заметите никаких зомби или неработающих процессов, запущенных в вашей системе.
Через графический интерфейс
Опять же, откройте утилиту системного монитора на панели инструментов и перечислите процессы всех пользователей. Вы заметите, что на вашем компьютере запущен единственный зомби-процесс.
Теперь щелкните правой кнопкой мыши процесс зомби и нажмите кнопку «убить», чтобы убить процесс. Вам будет предложено подтвердить. Щелкните "Kill Process" для подтверждения. Вам также будет предложено ввести учетные данные пользователя root.
Если вам эта статья была полезна с вас лайк подписка!