start-stop-daemon retornando sempre 0 (sucesso)

2

Eu configurei start-stop-daemon para iniciar meu script automaticamente

case "$1" in
   start)
      log_begin_msg "starting foo"
      start-stop-daemon --start --chuid nobody --user nobody --pidfile \
      /tmp/foo.pid --startas /usr/local/bin/foo.sh &
      log_end_msg $?

o problema é que sempre retorna 0 (sucesso), mesmo que o processo não tenha sido iniciado.

Como posso capturar o código de retorno de start-stop-daemon corretamente?

    
por Martin Vegter 09.08.2014 / 00:37

1 resposta

3

Você não está capturando o código de retorno de start-stop-daemon .

Seu problema é que você está iniciando em segundo plano e é iniciado corretamente. Quero dizer que você está capturando o código de retorno de starting something in background that wants to start something in background .

Tente isto:

rm /tmp/not_existent_file &
echo $?

Isso sempre imprime 0 .

Para obter o código de retorno de um processo em segundo plano, você deve esperar que ele saia com wait . Aqui está um exemplo:

rm /tmp/not_existent_file &
wait $!
echo $?

Se você quiser iniciar o processo que não está bifurcando sozinho, tente usar a opção --background e remova & do final da linha start-stop-daemon .

Veja página inicial do start-stop-deamon

    
por 09.08.2014 / 01:53