Я создал двоичную программу с использованием C ++. Теперь я хочу, чтобы эта программа работала непрерывно. Я использую Ubuntu 14.04 LTS. Я решил использовать crontab, чтобы проверить, работает ли программа, а если нет, то запустите ее.
Программа не может запускаться с использованием пользователя root, поэтому я должен выполнить ее с помощью пользователя ubuntu.
Я проверил, что моя программа может работать, я открыл терминал и набрал:
/home/ubuntu/CountThem/CountThem.out /home/ubuntu/CountThem/name_of_input_output_files.txt >/home/ubuntu/cout.txt &
До этого момента все работает нормально ,
Я создал сценарий для запуска программы, если она не запущена. Это мой скрипт
#!/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
Я создал cron.
Я выполнил sudo crontab -u ubuntu -e и добавил строку:
* * * * * bash /home/ubuntu/restartcountthem > /home/ubuntu/logcountthem.txt
Замечания:
Я знаю, что cron запущен, файл /home/ubuntu/logcountthem.txt создается всегда, если я его удалю. [F6] также создается, поэтому я предполагаю, что строка, которая вызывает функцию Countthem.out, выполняется, но программа не запускается. Если я удаляю строку /home/ubuntu/CountThem/CountThem.out ..., слово «Тест» переходит к cout.txt Если я нахожу ./restartcountthem в терминале, он работает.Любой совет?