Por que alguém usaria “stop; exit 1 ”em um script Upstart em vez de apenas“ exit 1 ”em caso de erro?

2

Estou mantendo um script Upstart (versão 0.6.5) e, no pre-start script , há um teste para encerrar o serviço se uma pré-condição não for atendida:

pre-start script
  if [ ! -f $REQUIRED_FILE ]; then
    echo "$REQUIRED_FILE does not exit" >> $LOG_FILE
    stop 
    exit 1
  fi
end script

De acordo com a documentação de referência csh / tcsh , stop [jobIDs] :

suspend[s] the current background jobs or the background jobs specified by jobIDs; this is the complement of Ctrl-Z or suspend.

Não vejo nenhum uso para stop aqui, especialmente na seção pre-start em que o serviço ainda não foi iniciado (por exemplo, na sub-rotina exec ).

Estou sentindo falta de algo aqui? Ou é stop aqui redundante e desnecessário?

    
por Behrang 01.10.2016 / 15:45

1 resposta

1

Usar stop dentro de um trabalho é equivalente a chamar sudo stop <job-name> . Isso seria usado se você quisesse desativar o respawn -ing de um trabalho.

A documentação do upstart na sub-rotina de pré-início tem um exemplo que explica esse uso:

link

Another possibility is to cancel the start of the job for some reason. One good reason is that it's clear from the system configuration that a service is not needed:

pre-start script
  if ! grep -q 'parent=foo' /etc/bar.conf ; then
    stop ; exit 0
  fi
end script
    
por 05.07.2017 / 23:43