Мне нужно настроить задание cron, которое запускает исполняемый файл, скомпилированный с использованием gcc один раз в час.
Я вошел в систему как root и набрал crontab -e
Затем я ввел следующее и сохранил файл.
0 * * * * /path_to_executable
Однако задание cron не работает.
Я вижу, что когда я набираю / ... path_to_executable
, я получаю ошибку сегментации.
Я могу выполнить исполняемый файл только из папки, в которой он находится.
Есть ли способ решить эту проблему?
0 * * * * cd folder_containing_exe && ./exe_name
должен работать, если нет чего-то еще, что нужно настроить для запуска программы.
Поскольку я не мог запустить исполняемый файл C
таким образом, я написал простой сценарий оболочки
, который выполняет следующие действия
cd /..path_to_shell_script
./c_executable_name
В список заданий cron, я вызываю сценарий оболочки.
Вы имели в виду, что исполняемый файл не запускается, если его вызвать из любого другого каталога? Это скорее ошибка исполняемого файла. Одной из возможных причин может быть то, что исполняемый файл требует некоторые общие библиотеки из установленной папки. Вы можете проверить переменную окружения LD_LIBRARY_PATH
используйте
path_to_exe >> log_file
чтобы увидеть вывод вашей команды также ошибки могут быть перенаправлены с помощью
path_to_exe &> log_file
также вы можете использовать
crontab -l
чтобы проверить, были ли сохранены ваши правки.
Решение этой проблемы - выяснить, почему возникает ошибка сегментации, и исправить ее.