Вот мой вариант использования. У меня есть давно работающий сервер, который запускает выскочка. Этот сервер необходимо сначала инициализировать (заполнить таблицы в базе данных). Это должно произойти только один раз за время существования службы (и снова при миграции), поэтому не может быть привязано к действию запуска / остановки.
Как это настроить в выскочке? Могу ли я установить это без «start myservice-init; start myservice»?
Перепубликовано с https://stackoverflow.com/questions/24442123/upstart-init-task?noredirect=1#comment37820533_24442123 так как это было приостановлено там.
Есть ли способ проверить по sh, нужна ли популяция db? Если да, ты можешь это получить
start on starting myservice
task
pre-start script
dbinitneeded || { stop; exit 0; }
end script
# init the db here with a script or exec