Acho que a maneira mais fácil de fazer isso seria o seu programa verificar a existência de um arquivo antes de fazer a tentativa e criar esse arquivo assim que ele for executado com êxito.
Se você não puder modificar o programa para fazer isso, use o próprio cronjob. Algo ao longo das linhas de:
test -e /path/to/tempfile || ( /path/to/program && touch -a /path/to/tempfile )
Devido à maneira como o unix avalia as verificações de condição, uma vez que o lado esquerdo da condição ||
é avaliado como true
, a expressão inteira é verdadeira e o lado direito nunca é avaliado - ou seja, o programa não é chamado .
Em seguida, dentro dos parênteses, & & exige que ambos os lados sejam avaliados como verdadeiros, portanto, se /path/to/program
sair com um código de retorno diferente de zero, não há sentido em avaliar a instrução à direita - a expressão já é avaliada como falsa - e /path/to/tempfile
nunca é criada. p>