Декодирование флагов для команды Kill

Декодирование флагов для команды Kill

Я видел эту команду в книге по написанию сценариев оболочки Linux.

$ kill -HUP 1234 >killout.txt 2>killerr.txt

Я знаю, что делает команда, но не могу понять флаги.-ХУП

решение1

Под Linux попробуйте man 7 signal.

kill -HUP 1234означает «отправить сигнал SIGHUP (1) для обработки 1234», поэтому он эквивалентен kill -1 1234. Сигнал по умолчанию, который отправляет kill, — SIGTERM (15), поэтому kill 1234он эквивалентен kill -TERM 1234или kill -15 1234.

решение2

-HUPне три флага H, U, Pкак в обычном однобуквенном синтаксисе опций. По историческим причинам команда killпринимает необязательное имя сигнала или номер сигнала, которому предшествует тире ( -).

kill -1 1234
kill -HUP 1234

(В отличие от kill 1 1234, который отправил бы сигнал по умолчанию (SIGTERM) процессам 1 и 1234.)

На вашей странице руководства, вероятно, указано что-то вроде этого:

kill [ -signal | -s signal ] pid ...

Это -signalозначает, что вы можете использовать тире, за которым следует обозначение сигнала (которое может быть именем или номером). В качестве альтернативы вы можете использовать опцию, -sза которой следует имя сигнала; это два разных синтаксиса с одинаковым значением.

kill -lперечисляет доступные названия сигналов и соответствующие им номера.

Большинствосигналыимеют предопределенное значение, основанное накто их посылает когдаи как процессы должны и могут реагировать на них.

Связанный контент