kill - отправка сигналов процессам
kill [-s имя_сигнала] pid ...
kill -l [код_завершения]
kill -имя_сигнала pid ...
kill -номер_сигнала pid ...
Программа kill используется для управления работающими процессами по их PID, с помощью отправки им управляющих сигналов.
Пользователь root, может управлять любыми процессами, в том числе и процессами других пользователей. Если не указано символическое имя или номер сигнала, отправляется сигнал
TERM.
Возможны следующие опции:
- -s имя_сигнала
Данная опция позволяет отправить сигнал процессу, используя его символическое имя. По-умолчанию отправляется сигнал TERM. На самом деле, эту опцию можно опускать, устанавливая только знак "-" перед именем или номером сигнала, например: -HUP или -1.
- -l [код_завершения]
- Без указания операнда, выведет имена сигналов. Иначе, покажет имя сигнала, соответствующего указанному коду_завершения.
- -имя_сигнала
- Указать символическое имя сигнала, для отправки процессу.
- -номер_сигнала
- Указать сигнал по его числовому значению ( только положительное число )
Следующие PID имеют специальное значение.
- -1
- При выполнении пользователем root, отправляет сигнал всем процессам, иначе всем процессам принадлежащим данному пользователю.
Ниже представлены самые часто-используемые сигналы, имеет смысл, запомнить их:
- 1 - HUP (hang up) - отбой
- 2 - INT (interrupt) - прерывание
- 3QUIT (quit) - выход
- 6ABRT (abort) - аварийное завершение
- 9KILL (non-catchable, non-ignorable kill) - безусловное уничтожение
- 14ALRM (alarm clock) - будильник
- 15TERM (software termination signal) - програмное завершение
Некоторые системные оболочки имеют встроенную команду kill с идентичным или похожим функционалом. За дополнительной информацией обратитесь к справочному руководству
man buildin.
При успешном завершении, программа
kill, возвращает
0, иначе
>0.
Примеры использования:
Многие демоны, реагируют на сигнал HUP, перечитыванием конфигурационного файла, без прерывания работы. Напрмер, у нас работает некий демон с
PID 123, мы, не прерывая его работы, вносим изменения в конфигурационный файл. Что-бы работающий демон принял эти изменения, отправляем ему сигнал
HUP.
kill -HUP 123
или
kill -1 123
Что-бы безусловно завершить процесс ( например в случае его зависания ), используем сигнал
KILL, или 9 в числовом эквиваленте. Сигнал
KILL не перехватывается, уничтожение процесса происходит на уровне
операционной системы.
kill -9 123
Кроме того можно управлять группой процессов по их
PGID:
kill -TERM -PGID
Смотри так-же:
builtin(1), csh(1), killall(1), ps(1), kill(2), sigaction(2)