2

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

В Solaris был способ создать зависимость между двумя службами, такую, что вы могли бы сказать: Приложение может быть запущено, только если работает DB2.

Есть ли способ создать такую зависимость в Redhat 6.5, кроме ожидания безопасного момента (sleep x), а затем запуска приложения?

2 ответа2

1

Используйте поле заголовка Required-Start . Предполагая, что сценарий инициализации для DB2 называется db2server , добавьте эту строку в раздел заголовка второго сценария:

# Required-Start: db2server

Вот документация LSB, которую вы ищете.

Если вы посмотрите на другие скрипты, вы увидите раздел заголовка с этими полями:

### BEGIN INIT INFO
# Provides: 
# Required-Start: 
# Required-Stop: 
# Should-Start: 
# Should-Stop: 
# Default-Start: 
# Default-Stop: 
# Short-Description: 
# Description: 
### END INIT INFO

*-Start и *-Stop могут принимать явные имена других сценариев SysVInit или описательных заполнителей, таких как $local_fs , $remote_fs .

Примечание: я знаю, что этому вопросу примерно 18 месяцев, но другой ответ был в основном просто набором ссылок без объяснения причин.

0

RHEL 6 контролирует последовательность запуска и завершения работы через upstart, менеджер на основе событий (первоначально созданный для Ubuntu Linux), который служит заменой традиционному демону инициализации SysV . В этом разделе из Поваренной книги Upstart показано, как задать зависимости, чтобы они начинались в правильной последовательности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .