Главная >> Инструкции >> Не убивается процесс Linux

Не убивается процесс Linux

Во время использования операционной системы Linux возникают ситуации, при которых процессы зависают и вы не можете их завершить. Например, вы хотите закрыть графическую программу или сервис, отправляете сигнал TERM, что в переводе означает завершить, а программа не реагирует на него.

Дело в том, что для того, чтобы программа могла завершится с помощью сигнала TERM, она должна быть в рабочем состоянии. Это сигнал просит программу завершится. Если программа зависла, она может попросту не получить ваш сигнал. Или программа может его обработать но не завершатся, этот сигнал носит рекомендательный характер. Вот возможные причины и варианты решения:

  • Недостаточно прав - вы не можете убить процесс, запущенный от имени другого пользователя, используйте sudo;
  • Программа зависла - необходимо ей послать сигнал KILL;
  • Программа стала зомби - необходимо уничтожить её родительский процесс.
  • Программа ждет ответа от драйвера - ждать или перезапустить компьютер.

В любом случае сначала пробуем от имени суперпользователя:

sudo kill -KILL идентификатор_процесса

Сначала можно попробовать завершить программу с помощью сигнала KILL, для этого передайте -KILL или -9 в виде опции утилите kill:

kill -KILL идентификатор_процесса

Если это не работает, можно попробовать посмотреть родительский процесс программы с помощью утилиты ps:

ps -xal | grep идентификатор_процесса

А затем его уничтожить. Подробнее об этом читайте в статье зомби процессы Linux. Последний возможный вариант - программа находится в состоянии TASK_UNITERRUPTIBLE. В это состояние программа, когда она ожидает ответа от драйвера. Например, драйвера оборудования или файловой системы. Обычно, когда драйвер отрабатывает, программа становится обычной, но при ошибках в драйверах программа может остаться в этом состоянии навсегда. Убить её нельзя, можно только перезагрузкой компьютера.

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

6 комментариев к “Не убивается процесс Linux”

  1. Мне всегда было удобнее убивать htop'ом. Там можно сразу выбрать какой из сигналов завершения хочешь использовать. И так же строишь процессы в группы и убиваешь родителя

    Ответить
  2. Вот пример, на Ubuntu 19.10 у меня периодически не запускался Krusader, процесс висит но программа не запускается и убить процесс не получается, только перезагрузкой. Я использовал программу для ftp соединения, оказалось что зависал процесс ssh, убиваю ssh и Krusader запускается и работает.

    Ответить
  3. Я имел ввиду, что в статье нет информации что иногда процесс нельзя убить не потому что он находится в каком-то состоянии, а потому что завис другой, зависимый, процесс, который не позволяет убить процесс.

    Ответить

Оставьте комментарий