Как завершить неотвечающие процессы в Linux с помощью kill и pkill

Работа с неотвечающими программами может быть сложной задачей, особенно если вы работаете на старом оборудовании. В этом случае частой проблемой становится зависание системы. К счастью, в Linux есть множество способов убить неотвечающие процессы.

Команды kill и pkill предоставляют простые, но эффективные решения для завершения неотвечающих зомби-процессов с терминала. В следующих разделах описывается, как убить зависшие процессы в Linux с помощью kill и pkill.

Завершить неотвечающие процессы с помощью kill

Команда kill в Linux позволяет с легкостью закрыть неотвечающие процессы. Он отправляет процессу сигнал завершения. По умолчанию kill отправляет сигнал SIGTERM , представленный сигналом номер 15 . В следующем примере kill используется для остановки процесса с PID 27065.

 kill 27065

Пользователи могут отправлять другие сигналы, указав имя или номер сигнала. Например, приведенные ниже команды kill останавливают зомби-процесс с помощью системного сигнала SIGKILL , представленного сигналом номер 9 .

 kill -9 27065
kill -SIGKILL 27065

Разница между SIGTERM и SIGKILL заключается в том, что процессы могут перехватывать и игнорировать сигнал SIGTERM. Но SIGKILL невосприимчив к обработке процессов и немедленно уничтожает программы.

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

 kill -l
kill -L

В целом, SIGKILL больше подходит при работе с не отвечающими системными процессами . С другой стороны, SIGTERM – это то, что вам нужно, если вы хотите корректно завершить зависшие программы.

Убейте неотвечающие процессы с помощью pkill

Команда pkill упрощает завершение процессов в Linux, позволяя убивать программы по их имени. Например, приведенная ниже команда убивает программу nano с помощью pkill.

 pkill nano

Как и kill, pkill по умолчанию также отправляет сигнал SIGTERM. Используйте сигнал SIGKILL, если вы хотите немедленно остановить неотвечающий процесс.

 pkill -9 nano

Как получить идентификатор процесса (PID) процесса

Информация о PID может оказаться огромным подспорьем при завершении не отвечающих процессов в Linux. Вы можете получить номер PID процесса несколькими способами. Следующая команда извлекает PID процесса с именем nano с помощью команды grep и ps.

 ps aux | grep nano

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

 pgrep nano

Управление неотвечающим процессом в Linux

Команды kill и pkill упрощают работу с неотвечающими процессами в Linux. Все, что вам нужно, чтобы остановить зомби-процесс, – это его PID и доступ к оболочке. Однако вам могут потребоваться дополнительные разрешения sudo при уничтожении процессов, принадлежащих другому пользователю. Итак, если вы работаете в многопользовательской системе, попросите администратора добавить вас в список sudoers, прежде чем предпринимать какие-либо действия.