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)