Многие программы Unix принимают сигналы типа USR1
и USR2
. Например, чтобы обновить исполняемый файл для Nginx "на лету", вы отправляете kill -USR2
.
Я понимаю, что USR1
является "определяемым пользователем" сигналом, что означает, что тот, кто создал программу, может использовать его для обозначения "выключить" или "выгрузить ваши журналы" или "распечатать foo тысячу раз" или что-то еще. Но я не понимаю, почему они должны использовать это произвольное имя. Почему бы не kill -UPGRADE
, или kill -GRACEFUL_SHUTDOWN
? Имеет ли Unix только определенные сигналы?
Пока мы это делаем, Nginx также использует следующие сигналы (см. документация):
- TERM, INT: быстрое отключение
- QUIT: изящное завершение работы
- HUP:
- Конфигурация перезагрузки
- Запустите новые рабочие процессы с новой конфигурацией
- Изящное завершение работы старых рабочих процессов
- USR1: откройте файлы журнала
- USR2: обновление исполняемых на лету
- WINCH: изящное завершение рабочих процессов
HUP? Winch? Какая причина этих имен? Где я могу узнать больше об этом?