Как настроить задание cron для запуска исполняемого файла каждый час?

Мне нужно настроить задание cron, которое запускает исполняемый файл, скомпилированный с использованием gcc один раз в час.

Я зарегистрировался как root и набрал crontab -e

Затем я ввел следующее и сохранил файл.

0 * * * *  /path_to_executable

Однако задание cron не работает.

Я вижу, что когда я набираю /...path_to_executable, я получаю ошибку сегментации. Я могу выполнить исполняемый файл только из папки, в которой он находится. Есть ли способ решить эту проблему?

Ответ 1

0 * * * * cd folder_containing_exe && ./exe_name

должен работать, если для запуска программы не требуется что-то еще.

Ответ 2

Правильный способ решить это - выяснить, почему вы получаете ошибку сегментации, и исправить это.

Ответ 3

Если вы используете Ubuntu, вы можете поместить оболочку script в одну из следующих папок: /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly или /etc/cron.weekly.

Для получения более подробной информации ознакомьтесь с этим сообщением: https://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job

Ответ 4

Так как я не смог запустить C исполняемый, я написал простой shell script, который выполняет следующие

cd /..path_to_shell_script
./c_executable_name

В списке заданий cron я вызываю оболочку script.

Ответ 5

Вы имели в виду, что исполняемый файл не запускается, если он вызван из любого другого каталога? Это скорее ошибка в исполняемом файле. Одна потенциальная причина может заключаться в том, что исполняемый файл требует наличия некоторых общих libraires из установленной папки. Вы можете проверить переменную окружения LD_LIBRARY_PATH

Ответ 6

Вы также можете использовать @hourly мгновение 0 * * * *

Ответ 7

использовать

path_to_exe >> log_file

чтобы увидеть вывод вашей команды также ошибки можно перенаправить с помощью

path_to_exe &> log_file

также вы можете использовать

crontab -l

чтобы проверить, что ваши изменения сохранены