Назад | Перейти на главную страницу

Upstart: определение зависимостей / приоритетов сервисов

Я работаю над приложением, которое запускает несколько служб / демонов с использованием выскочки. Они должны запускаться при запуске системы, но только после запуска сервера БД (в нашем случае mongo). Я ищу правильную конфигурацию выскочки, чтобы служба либо запускала mongo при запуске, либо запускалась только после запуска mongo.

Я не хочу изменять какую-либо конфигурацию выскочки, которая не является частью нашего собственного программного обеспечения (например, изменять конфигурацию выскочки mongo).

Одним из направлений было добавить в наш код что-то вроде:

start on started mongod and runlevel [2345] 

Или что-то подобное, но я думаю, что это не совсем то, что я хочу: я хочу, чтобы "mongo start" было требованием для наших служб, я не хочу, чтобы это запускало мои скрипты. Например. Я не хочу, чтобы, например, если кто-то вручную остановил наши службы и перезапустил mongo, наши скрипты также непреднамеренно запустились.

Какие-либо предложения?

В начале сценария инициализации есть INIT INFO блок:

### BEGIN INIT INFO
# Provides:          skeleton
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.
### END INIT INFO

В первых трех строках вам нужно изменить, чтобы делать то, что вы хотите. Provides указывает, какую службу обслуживает ваш сценарий. Required-Start здесь вы разместите зависимости, например mongod в вашем случае и, если это так, на Required-Stop вы установите службы, которые должны быть остановлены, прежде чем вы остановите свою службу.