Qual poderia ser o problema? Aqui estão algumas possibilidades:
- Releia a resposta a que você se refere.
until [start -Dhttp.port=9000]; do
não deve ter os colchetes[
e]
. - Se você tiver
.
(o diretório atual) em seu caminho de pesquisa, você não precisa dizer./
quando executar seu programastart
da maneira que você faz agora. Se você não tiver.
em seu caminho de pesquisa, você fazer precisa dizer./start
no seu scripttryReboot
. - Seu script
tryReboot
pode não estar em execução emcrontab
por vários motivos. Por exemplo, correndo o risco de insultar sua inteligência, você não diz que você fezchmod +x tryReboot
. Você verificou quetryReboot
está sendo executado? Talvez por ter escrito mensagens em um arquivo de log? Dica: você pode querer incluir a data e o horário nessas mensagens incluindo$(date)
na sua stringecho
. - Os arquivos
RUNNING_PID
podem persistir porque não há mecanismo para removê-los. (Se você disse que espera que eles sejam removidos, eu perdi isso.) Você provavelmente deve excluir o arquivoRUNNING_PID
no início do scripttryReboot
; e, de fato, provavelmente em cada iteração (porque, se você chegar à instruçãoecho
, isso significa que o comandostart
foi finalizado).
Mas é difícil dizer qual é o problema, porque sua pergunta é um pouco incerta.
- É
start
o nome do seu programa e você está realmente lançando com um comando comonohup ./start -Dhttp.port=port_number &
, ou éstart
um programa que bifurca e executa seu programa em um processo filho assíncrono? Se esta última, toda a abordagemuntil command; do … done
é inadequada. - Você já tentou executar
tryReboot
manualmente? O que acontece?
Etc.