Я начинаю преобразовывать все наши системы в использование upstart для управления различными процессами приложения. Одна вещь, которую я постоянно упускаю, - это возможность отправлять другой сигнал процессу stop
или restart
событиям.
Например, мы запускаем наши веб-процессы с помощью Unicorn . Unicorn имеет отличный API для обработки сигналов. Когда я хочу изящно перезагрузить процесс, я посылаю мастеру pid сигнал USR2. Чтобы закрыть их изящно, я посылаю команду ВЫХОДА. TERM (сигнал остановки upstart по умолчанию) представляет собой немедленное отключение.
Другой пример - использование Resque . Чтобы изящно закрыть работника, я посылаю ему сигнал ВЫХОДА. Сигнал TERM снова вызывает немедленное отключение независимо от того, разветвлен ли ребенок работника или нет.
Поддерживает ли upstart пользовательские сигналы? Кажется, я нигде не могу его найти, и меня беспокоит, что я использую «неправильный инструмент для работы».