Является ли SIGQUIT таким же, как SIGTERM?

13

Я изучаю CentOS / RHEL и в настоящее время занимаюсь вопросами управления процессами.

Книга RHCSA, которую я читаю, описывает бег kill 1234как отправку SIGQUIT. Я всегда думал, что команда kill без добавления переключателя для типа сигнала должна по умолчаниюkill -15

SIGTERM - это kill -15SIGKILL kill -9, верно?

Использует ли CentOS / RHEL немного другой метод kill -15или я просто ошибся?

РЕДАКТИРОВАТЬ: kill -lдает SIGQUIT, как kill -3и, кажется, связано с использованием клавиатуры для завершения процесса. man 7 signalтакже заявляет, что SIGQUIT есть kill -3, поэтому я могу только предположить, что моя книга ошибочна, заявив, что SIGQUIT используется по kill -15умолчанию.

bitofagoob
источник

Ответы:

13

Нет, они не одинаковы. Действие по умолчанию для обоих - завершить процесс, но SIGQUITтакже сбросить ядро. Смотрите, например, страницуsignal(7) руководства Linux . killпо умолчанию отправляет SIGTERM, поэтому я могу только представить, что упоминание SIGQUIT по умолчанию действительно является ошибкой. Это значение по умолчанию в POSIX , как и числа для SIGTERM, SIGKILL и SIGQUIT.

ilkkachu
источник
1
Да. Я думаю, что книга ошибочна, потому что она также перечисляет SIGQUIT как -15. Сигнал -15 - это такой устоявшийся способ завершить процесс в мире Linux, что, несомненно, это опечатка. Я отмечу ваш ответ как правильный. Спасибо, что рассказали о том, что делает SIGQUIT.
bitofagoob
1

Есть две команды kill, одна в procps и одна в shell. Оба используют SIGTERM по умолчанию. В случае команды procps kill справка по команде, справочная страница и источник уничтожения (строка skill.c 724 в последней ветке master) - все это SIGTERM, и приятно знать, что он согласован.

О сигналах следует помнить одну вещь: как только вы начнете проходить мимо «обычной связки» и использовать системы, несколько отличающиеся от системы x86 Linux, вы можете обнаружить, что сигналов нет или они имеют разные номера. procps (и, вероятно, многие другие программы) запекает числа во время компиляции (по существу, независимо от того, что имеет включаемый файл, ищите signum.h).

Для SIGTERM не о чем беспокоиться, как говорит @ilkkachu, это в POSIX.

Крейг Смолл
источник
manpage for skill говорит о том, что skill и snice устарели. Интересно, почему они не были удалены из пространства пользователя? Во всяком случае, интересная информация. Благодарю.
bitofagoob