Багато програм Unix приймають такі сигнали, як USR1
і USR2
. Наприклад, щоб оновити виконуваний файл для Nginx на льоту, ви надсилаєте kill -USR2
.
Я розумію, що USR1
це "визначений користувачем" сигнал, що означає, що той, хто створив програму, може використовувати його, щоб означати "вимкнути", "скинути ваші журнали" або "надрукувати foo тисячу разів" або що завгодно. Але я не розумію, чому вони повинні використовувати цю довільну назву. Чому ні kill -UPGRADE
, чи kill -GRACEFUL_SHUTDOWN
? Чи Unix дозволяє лише певні сигнали?
Поки ми до цього прийшли, Nginx також використовує такі сигнали (див. Документацію ):
- ТЕРМІН, INT : Швидке вимкнення
- QUIT : Витончене вимкнення
- HUP :
- Перезавантаження конфігурації
- Запустіть нові робочі процеси з новою конфігурацією
- Витончено вимкніть старі робочі процеси
- USR1 : Відкрийте знову файли журналів
- USR2 : оновлення, що виконується на льоту
- WINCH : Витончено вимикає робочі процеси
HUP? ЛЕБЕДКА? У чому причина цих імен? Де я можу дізнатись більше про це?