Как я могу убедиться, что одно задание Upstart останавливается до того, как другое задание Upstart останавливается?

Иногда мой сервер выключается через ACPI, и мне удается изящно завершить процесс. Тем не менее, мой процесс (задание A) зависит от другого процесса (задание B) во время его постепенного завершения, поэтому теперь я хочу убедиться, что задание B не остановится, пока задание A не будет остановлено.

Оба процесса являются заданиями Upstart, поэтому я попытался сделать это, добавив это в файл / etc / init задания B:

# Don't stop until job A stops
pre-stop script
    while true
    do
        status A | grep -q "stop/waiting" && exit 0
        sleep 1
    done
end script

Это не похоже на работу; когда я выключаю свой сервер с помощью ACPI, задание B обычно выключается перед заданием A, так что задание A выдает сообщения об ошибках о том, что задание B не запущено.

Что-то не так с моим сценарием? Есть ли другой подход, который я должен выбрать? Или с Upstart невозможно сделать то, что я хочу?

Смежный вопрос: Как остановить работу до ее зависимости?

5
задан 13 April 2017 в 15:24

1 ответ

Эти параметры можно использовать в задании A:

  • Остановка перед зависимой службой

    stop on stopping B
    
  • Запуск после зависимой работы сервис

    start on started B
    

Ссылка: http://upstart.ubuntu.com/cookbook/#stop-on

0
ответ дан 13 April 2017 в 15:24

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

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