Сервис Upstart не запускается, когда сервис зависит от запуска

У меня есть служба, которая называется service C. Она имеет следующие условия запуска и остановки:

start on ( started A and started B)
stop on (stopping A or stopping B)

Когда я вручную останавливаю A, C останавливается. Однако, когда я запускаю A, C не запускается, пока я не остановился и не начал B также.

Я хочу, чтобы C запускался всякий раз, когда A и B оба работают, и вышеуказанные условия не достигают этого. Любые идеи о том, как должны выглядеть начальные условия?

Спасибо!

1
задан 06.05.2020, 03:54

1 ответ

Измените начальный раздел на 'или' следующим образом:

start on ( started A or started B )

Затем добавьте сценарий предварительного запуска, который проверяет, работают ли обе службы, и прервите запуск, если они нет. Примерно так:

pre-start script
  if [ -z `status A | grep running` ] || [ -z `status B | grep running` ]; then
    stop ; exit 0
  fi
end script

См. Раздел «Предварительный запуск» в кулинарной книге . Возможно, есть лучший способ проверить, работает ли служба, но это работает для меня. Адаптируйся под свои нужды.

0
ответ дан 06.05.2020, 03:54

Теги

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