Я поддерживаю сценарий Upstart (версия 0.6.5), а в предварительном сценарии
есть тест для прекращения службы, если предварительное условие не выполняется:
pre-start script
if [ ! -f $REQUIRED_FILE ]; then
echo "$REQUIRED_FILE does not exit" >> $LOG_FILE
stop
exit 1
fi
end script
Согласно в справочной документации csh
/ tcsh
, stop [jobIDs]
:
приостанавливает [s] текущие фоновые задания или фоновые задания, указанные в идентификаторах jobID; это дополнение Ctrl-Z или приостановка.
Я не вижу здесь никакого смысла для stop
, особенно в разделе pre-start
, где служба еще не запущена (то есть в разделе exec
).
Я что-то здесь упустил? Или stop
здесь лишний и ненужный?
Использование stop
внутри задания эквивалентно вызову sudo stop <имя-задания>
. Это может быть использовано, если вы хотите отключить респаун
задания.
В документации для новичков в разделе «Предварительный запуск» есть пример, объясняющий это использование:
http: // upstart.ubuntu.com/cookbook/#pre-start
Еще одна возможность - отменить запуск задания для некоторых причина. Одна веская причина в том, что это ясно из системы конфигурация, при которой служба не нужна:
предварительный сценарий если ! grep -q 'parent = foo' /etc/bar.conf; тогда стоп ; выход 0 фи конец сценария