Как завершить неотвечающие процессы в 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, прежде чем предпринимать какие-либо действия.