Нашли упрямый фоновый процесс, пожирающий системные ресурсы? Вы можете убить его с помощью команды kill
Вот как использовать команду Kill
Чтобы использовать команду kill в полной мере, важно знать ее синтаксис, поэтому вот основной синтаксис команды kill:
kill [options]<PID>
Здесь,
[options]
: используется для тонкой настройки поведения команды в соответствии с вашими потребностями, например, вы можете использовать опцию-s
, чтобы указать сигнал kill.<PID>
: здесь вы указываете ID процесса, который нужно убить.
Теперь давайте посмотрим на список доступных вам опций:
Опции | Описание |
---|---|
-s <signal></signal> | .
Укажите, какой сигнал kill отправить. |
-l <signal_no></signal_no> |
Показывает имя сигнала через номер сигнала. |
-L |
Перечислите все доступные сигналы. |
q<value></value> |
Отправляет сигнал с помощью sigqueue(3) вместо kill(2), позволяя отправить дополнительное целочисленное значение вместе с сигналом. |
Ключевой опцией здесь является флаг -s
, поскольку вы будете использовать команду kill в основном с конкретными сигналами kill.
Вот список распространенных сигналов, используемых с командой kill:
Номер сигнала | Имя сигнала | Описание |
---|---|---|
1 |
SIGHUP | Re-read configuration (например, перезагрузка настроек веб-сервера). |
2 |
SIGINT | Прервать процесс, аналогично нажатию Ctrl+C. |
3 |
SIGQUIT | Выход и создание дампа ядра (для отладки аварийных ситуаций). |
9 |
SIGKILL | Принудительно завершить работу немедленно (использовать с осторожностью!). |
15 |
SIGTERM | Мягкий запрос на завершение работы, позволяющий произвести очистку (по умолчанию). |
Если вы не укажете номер сигнала, по умолчанию будет использоваться SIGTERM
.
Теперь давайте рассмотрим несколько практических примеров использования команды kill.
Практические примеры команды kill
1. Список доступных сигналов
Чтобы получить список доступных сигналов, достаточно использовать флаг -L
в команде kill, как показано здесь:
kill -L

Как вы видите, в приведенном выше ответе повторяются сигналы завершения. Как же получить список всех доступных сигналов без повторений?
Проще всего использовать автономную версию команды kill, выполнив ее следующим образом:
/usr/bin/kill -L

2. Убить процесс с помощью команды kill
Чтобы убить процесс, необходимо указать PID (Process ID) целевого процесса. Чтобы найти PID процесса, вы можете использовать команду pidof, как показано здесь:
pidof <process_name>
Например, если я хочу найти PID браузера Firefox, то я использую следующее:
pidof firefox-bin

Получив PID, вы можете использовать следующую команду:
kill <PID>
Как я уже говорил, если вы не передадите никакого сигнала завершения, он будет использовать SIGTERM
, что достаточно для уничтожения большинства процессов.
Если процесс очень упрямый (и с ним связано множество дочерних процессов) и не уходит по сигналу по умолчанию, то можно использовать SIGKILL
.
Сигнал SIGKILL
убивает и дочерние процессы, поэтому используйте его с осторожностью. Вот как можно использовать SIGKILL
, чтобы убить упрямый процесс:
kill -9 <PID>
Например, клиент Spotify не реагировал на запросы и работал не так, как ожидалось, поэтому вот как я использовал SIGKILL, чтобы убить Spotify:
kill -9 13234
Здесь 13234
– это PID рабочего стола Spotify.
3. Убить несколько процессов одновременно
Чтобы убить несколько процессов, достаточно добавить к команде kill несколько PID, разделенных пробелами:
kill [options] PID1 PID2 PID3 PIDN
Например, здесь я использовал PID Firefox и Spotify, чтобы убить их оба сразу:
kill 10793 9758
4. Найдите название сигнала по номеру
Обычно вместо названия сигнала вы натыкаетесь на номер, и вам может понадобиться узнать, какой сигнал был использован.
Для этого вы можете использовать флаг -l
, добавив к нему номер сигнала, как показано здесь:
kill -l <Signal_number>
Например, если я хочу узнать, как называется сигнал завершения 9, то я использую следующее:
kill -l 9

Если вы заметили приведенный выше вывод, то понимаете, что он вывел только KILL
вместо SIGKILL
.
Почему, спросите вы? Ну, он не будет добавлять SIG
перед именем любого сигнала завершения.
Комментарии (0)