Как указать команду выключения демона с помощью upstart?

В конфигурации upstart как определить, какую команду следует использовать для выключения сервера. Допустим, у меня есть демон, который имеет два отдельных процесса.

  • startup.sh - для запуска сервера
  • shutdown.sh - для выключения сервера

Предположим, у меня есть файл upstart, который выглядит как этот.

description "Some Example Service"
author "Me"

start on runlevel [2345]
stop on runlevel [016]
respawn

exec startup.sh 

Как мне сказать upstart, что он должен вызвать shutdown.sh при выключении сервера? Как обычно upstart ожидает выключения демона?

9
задан 5 September 2014 в 03:52

1 ответ

Использование exec для запуска процесса вполне нормально, но при его остановке, если вам абсолютно необходимо запустить определенный сценарий или набор команд, вы можете использовать раздел pre-stop.

pre-stop exec shutdown.sh

Я предполагаю, что вы пытались использовать только exec stanza, и это не сработало, возможно, потому что ваш демон требует некоторой специальной очистки. Обратите внимание, что хорошо работающие демоны должны получать сигнал от upstart, когда работа остановлена, и если они обрабатывают сигнал соответствующим образом, дополнительная очистка не требуется.

Остановка задания включает в себя отправку SIGTERM на него. Если есть что-то, что нужно сделать до SIGTERM, сделайте это здесь. Можно утверждать, что сервисы должны обрабатывать SIGTERM очень изящно, поэтому в этом нет необходимости.

если есть что-то критическое, например, сброс на диск, и повышение тайм-аута не является опцией, предстоп - неплохое место для этого

Также читайте этот раздел для всего рабочего процесса, что происходит, когда вы останавливаете работу. Обратите внимание, когда запускается предварительная остановка, и как впоследствии посылается сигнал процессу, как обычно выскочка справляется с остановкой заданий.

Мой источник - официальная кулинарная книга Upstart по адресу: http://upstart.ubuntu.com/cookbook/

.
0
ответ дан 5 September 2014 в 03:52

Другие вопросы по тегам:

Похожие вопросы: