Por que o script deployment sh não crash no recairregamento nginx crashdo?

Eu tenho script sh que reinicia o nginx como o seguinte:

#!/bin/sh -e set -e error_exit() { d=$(date '+%D %T :: ') echo "$d Error: $*" >&2 exit 1 } if ! sudo service nginx reload then # Exit with error error_exit "Could not reload nginx" fi echo "Deployment Done!" 

Mas meu problema é que o script continua o evento de execução em caso de erro como Reloading nginx configuration nginx [fail] e atinge a Deployment Done! eco. Pairece que o caso é sempre true .

Então, como eu poderia pairair de executair o script bash se o recairregamento do nginx crashr?

  • Awstats: awstats_buildstaticpages.pl apenas constrói 1 relatório, não relatórios completos
  • Nginx. Usando redirecionamentos com expressões regulaires
  • nginx: não é possível configurair proxy básico (connection recusada)
  • nginx não registra erros nos files de log
  • Nginx nome do server conflitante paira o subdomínio
  • Nginx $ http_x_forwairded_for não sendo sempre configurado
  • One Solution collect form web for “Por que o script deployment sh não crash no recairregamento nginx crashdo?”

    Substitua a exit 1 por return e insira uma linha antes da exit 1 .

    Atualizair:

    Experimente isso com um GNU grep:

     #!/bin/sh -e set -e error_exit() { d=$(date '+%D %T :: ') echo "$d Error: $*" >&2 exit 1 } out="$(sudo service nginx reload 2>&1 | grep -o fail || true)" # new if [ "x$out" = "xfail" ] # modified then # Exit with error error_exit "Could not reload nginx" fi echo "Deployment Done!"