Ubuntu 14.04 LTS. Não é possível executar o binário em crontab

0

Eu criei um programa binário usando C ++. Agora, quero que esse programa seja executado continuamente. Estou usando o Ubuntu 14.04 LTS. Eu decidi usar o crontab para verificar se o programa está rodando, se não, então faça-o rodar.

O programa não pode rodar usando o usuário root, então eu tenho que executá-lo usando o usuário do Ubuntu.

Etapa 1.

Verifiquei que meu programa pode ser executado, abri o terminal e digite:

/home/ubuntu/CountThem/CountThem.out /home/ubuntu/CountThem/name_of_input_output_files.txt >/home/ubuntu/cout.txt &

Até este ponto, tudo funciona bem.

Etapa 2.

Eu criei o script para executar o programa, se ele não estiver em execução. Este é o meu script

#!/bin/bash
if pgrep -f '/home/ubuntu/CountThem/CountThem.out' > /dev/null
then
    echo "CountThem is running"
else
    echo "CountThem is stopped"   
    /home/ubuntu/CountThem/CountThem.out /home/ubuntu/CountThem/name_of_input_output_files.txt >/home/ubuntu/cout.txt &     
    echo "Test" >/home/ubuntu/cout.txt
fi

Etapa 3.

Eu criei o cron.

Eu executei sudo crontab -u ubuntu -e e adicionei a linha:

* * * * * bash /home/ubuntu/restartcountthem > /home/ubuntu/logcountthem.txt

Observações:

  1. Sei que o cron está em execução, o arquivo /home/ubuntu/logcountthem.txt é criado sempre que eu removê-lo.
  2. O cout.txt também é criado, então presumo que a linha que chama Countthem.out seja executada, mas o programa não inicia.
  3. Se eu remover a linha /home/ubuntu/CountThem/CountThem.out ... , a palavra "Teste" vai para cout.txt
  4. Se eu digitar ./restartcountthem no terminal, funcionará.

Algum conselho?

    
por Ricardo Morales 07.06.2017 / 19:48

0 respostas