6

Мы все знаем команду kill в Linux (kill -9 если нужна дополнительная мощность ;) ), но я не понимаю, для чего нужны другие цифры?

Вот цифры, которые я знаю:

  1. kill -1 → Зависание (Закрытие окна)
  2. kill -2 → Прерывание (Control + C)
  3. kill -9 → убить
  4. kill -15 → Завершить

Какие еще цифры для 5 или 12? 15 самый высокий или я могу kill -20234?

Я пробовал другие числа, и некоторые из них работали, но это все еще не дает мне никакого понимания того, что происходит под капотом или сценарием использования.

Примечание: просто чтобы убедиться, что это относится только к Linux (и Unix)

2 ответа2

8

Какой номер сигнала, который можно передать, чтобы убить?

kill -l перечисляет имена сигналов.

Страница man СИГНАЛ (7) содержит обзор сигналов.

Например:

Смотрите выше ссылку для полного обзора всех сигналов.

0

Принятый ответ правильный, и я не буду к нему прибавлять, но что вы подразумеваете под "работали"? Все они работают, просто сделайте одно из 6 основных действий (в принятом ответе называется "Действие" в таблице). Помните, что убийство является своего рода ошибочным. Это не обязательно прекращает ваш процесс. Он посылает сигнал, который, скорее всего (именно поэтому вы его отправили, верно?) убивает ваш процесс. Но это может сделать другие вещи.

Сигнал может быть проигнорирован только в том случае, если программа завершает работу с файлом ядра, завершается без файла ядра, останавливает программу, продолжает программу или программа может переопределить большинство сигналов с помощью обработчика сигнала.

Вот и все. Таким образом, INT, TERM, HUP и другие не теряют ядро. SEGV, BUS, ABRT и другие оканчиваются ядром и т.д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .