Зачем использовать «стоп; exit 1 »в сценарии Upstart, а не просто« exit 1 »в случае ошибки?

Я поддерживаю сценарий 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 здесь лишний и ненужный?

2
задан 2 October 2016 в 14:13
1 ответ

Использование stop внутри задания эквивалентно вызову sudo stop <имя-задания> . Это может быть использовано, если вы хотите отключить респаун задания.

В документации для новичков в разделе «Предварительный запуск» есть пример, объясняющий это использование:

http: // upstart.ubuntu.com/cookbook/#pre-start

Еще одна возможность - отменить запуск задания для некоторых причина. Одна веская причина в том, что это ясно из системы конфигурация, при которой служба не нужна:

 предварительный сценарий
  если !  grep -q 'parent = foo' /etc/bar.conf;  тогда
  стоп ;  выход 0
  фи
конец сценария
 
1
ответ дан 3 December 2019 в 12:38

Теги

Похожие вопросы