Я создал двоичную программу с использованием 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
Я выполнил sudo crontab -u ubuntu -e
и добавил строку:
* * * * * bash /home/ubuntu/restartcountthem > /home/ubuntu/logcountthem.txt
Наблюдения:
/home/ubuntu/logcountthem.txt
создается всегда, если я убери это. cout.txt
также создан, поэтому я предполагаю, что строка, которая вызывает Countthem.out, выполняется, но программа не запускается. /home/ubuntu/CountThem/CountThem.out ...
, слово «Тест» переходит к cout.txt
./restartcountthem
в терминале, это работает. Любой совет?