Qual poderia ser o problema? Aqui estão algumas possibilidades:
- Releia a resposta a que você se refere.
until [start -Dhttp.port=9000]; donã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 programastartda maneira que você faz agora. Se você não tiver.em seu caminho de pesquisa, você fazer precisa dizer./startno seu scripttryReboot. - Seu script
tryRebootpode não estar em execução emcrontabpor vários motivos. Por exemplo, correndo o risco de insultar sua inteligência, você não diz que você fezchmod +x tryReboot. Você verificou quetryRebootestá 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_PIDpodem 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_PIDno início do scripttryReboot; e, de fato, provavelmente em cada iteração (porque, se você chegar à instruçãoecho, isso significa que o comandostartfoi finalizado).
Mas é difícil dizer qual é o problema, porque sua pergunta é um pouco incerta.
- É
starto nome do seu programa e você está realmente lançando com um comando comonohup ./start -Dhttp.port=port_number &, ou éstartum 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
tryRebootmanualmente? O que acontece?
Etc.