Como posso evitar que o script morra se um ID de processo não existir?

1

Estou usando o shell bash no Ubuntu Linux 14.04. Eu tenho esse script ...

SIDEKIQ_PID="$APP_ROOT/tmp/sidekiq.pid"
SIDEKIQ_STOP_CMD="cd $APP_ROOT && bundle exec sidekiqctl stop $SIDEKIQ_PID 0"
...
    su - $USER -c "$SIDEKIQ_STOP_CMD"
    echo "Stopped sidekiq"

O que eu estou percebendo é que, se o PID não existir mais que está definido no meu arquivo "$ SIDEKIQ_PID", a linha

su - $USER -c "$SIDEKIQ_STOP_CMD"

morre com um erro "Processo não existe" e o script não continua (não consigo ver a seguinte instrução echo). Como posso fazer meu script continuar mesmo se o processo não existir mais?

    
por Dave 10.10.2017 / 23:51

1 resposta

0

Uma maneira rápida de contornar a configuração do errexit sem desligá-lo é fazer com que o comando retorne o sucesso.

Exemplo:

set -e
false  # script exits here

vs.

set -e
false || true   # script no longer exits

Então, talvez tente

su - $USER -c "$SIDEKIQ_STOP_CMD" || true
    
por 16.10.2017 / 23:35