Я работаю над приложением, которое запускает несколько служб / демонов с использованием выскочки. Они должны запускаться при запуске системы, но только после запуска сервера БД (в нашем случае 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
вы установите службы, которые должны быть остановлены, прежде чем вы остановите свою службу.