объявление зависимостей в выскочке

Кажется, что принятый способ указать зависимость службы A от службы B в upstart - это работать в обратном направлении зависимости: предоставить службу B a start on starting A строфа.

Я хотел бы избежать этого по двум причинам:

  1. Кажется странным изменять конфигурационный файл B, когда появляется новая служба, зависящая от него: новый сервис должен объявить свои зависимости; B не должен был знать о них.

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

    [тысяча сто тридцать два]

Я думал, что смогу просто запустить зависимые службы в разделе скрипта pre-start в файле conf, но похоже, что это не сработает, если у меня также есть setuid и setgid stanzas --- с тех пор сценарий pre-start будет запускаться с этим пользователем / группой.

Есть ли идиоматический способ сделать это (то есть объявить зависимости, а не обратные зависимости)? Этот ответ - это , а не , что я хочу, так как я не хочу также писать сценарий инициализации без запуска.

(Полагаю, start on started B для A сработает в этом случае, но я не уверен, сработает ли это, если бы A имел несколько зависимостей: сработало бы start on started B and started C? Если я начну B и затем C, получит ли A оба события одновременно? Также это неправильно понимает логику даже в случае с одной зависимостью: start on started B говорит, что запуск B является достаточным условие запуска A. Но я хочу сказать, что запуск B является необходимым условием для запуска A, и условием, что действие запуска A должно быть выполнено .)

3
задан 13 April 2017 в 15:14

0 ответов

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

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