Ubuntu 14.04 LTS. Не могу выполнить двоичный файл .out в crontab

Я создал двоичную программу с использованием C ++. Теперь я хочу, чтобы эта программа работала непрерывно. Я использую Ubuntu 14.04 LTS. Я решил использовать crontab, чтобы проверить, работает ли программа, если нет, то заставьте ее работать.

Программа не может запускаться с использованием пользователя root, поэтому я должен выполнить ее с использованием пользователя ubuntu.

Шаг 1.

Я проверил, что моя программа может работать, я открыл терминал и набрал:

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

До этого момента все работало нормально.

Шаг 2.

Я создал скрипт для запуска программы, если она не запущена. Это мой сценарий

#!/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

Шаг 3.

1122 Я создал крону.

Я выполнил sudo crontab -u ubuntu -e и добавил строку:

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

Наблюдения:

  1. Я знаю, что cron запущен, файл /home/ubuntu/logcountthem.txt создается всегда, если я убери это.
  2. cout.txt также создан, поэтому я предполагаю, что строка, которая вызывает Countthem.out, выполняется, но программа не запускается.
  3. Если я удаляю строку /home/ubuntu/CountThem/CountThem.out ..., слово «Тест» переходит к cout.txt
  4. Если я набираю ./restartcountthem в терминале, это работает.

Любой совет?

0
задан 20 November 2017 в 14:04

0 ответов

Другие вопросы по тегам:

Похожие вопросы: