Сервис 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
задан 21 January 2014 в 10:14

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
ответ дан 21 January 2014 в 10:14
  • 1
    Спасибо еще Немного вопросов. Я думал, что собственные драйверы от Nvidia предлагают лучшую производительность для моей карты. Я хочу установить NVIDIA-Linux-x86_64-352.21.run для выполнения с обновленным ядром. Я счастливо использовал бы метод, который Вы предлагаете вместо этого, если он обеспечит сопоставимую производительность (смотрящий кино на Netflix и DVD на 72" Sony в 1920 x 1080). Я исправляю это, я должен придерживаться Nvidia' s драйверы или версия xorg-edgers обеспечит сопоставимую производительность? И я должен просто использовать nvidia-352, так как я собирался установить 64-352.21? Спасибо за Ваше время. – Dr.Eval 20 July 2015 в 01:37

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

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