Я поддерживаю сценарий Upstart (версия 0.6.5) и в pre-start script
, есть тест для завершения службы, если предварительное условие не выполняется:
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]
:
приостановить текущие фоновые задания или фоновые задания, указанные в идентификаторах задания; это дополнение Ctrl-Z или приостановить.
Я не вижу в stop
здесь, особенно в pre-start
раздел, в котором служба еще не запущена (т.е. exec
строфа).
Я что-то упустил? Или это stop
здесь лишнее и ненужное?
С помощью stop
внутри работы эквивалентно вызову sudo stop <job-name>
. Это может быть использовано, если вы хотите отключить respawn
окончание работы.
В документации для новичков в разделе о предварительном запуске есть пример, объясняющий это использование:
http://upstart.ubuntu.com/cookbook/#pre-start
Другой вариант - отменить запуск задания по какой-либо причине. Одна из веских причин заключается в том, что из конфигурации системы ясно, что служба не нужна:
pre-start script if ! grep -q 'parent=foo' /etc/bar.conf ; then stop ; exit 0 fi end script