I need to set up a cron job that runs an executable compiled using gcc once every hour.
I logged in as root and typed crontab -e
Then I entered the following and saved the file.
0 * * * * /path_to_executableHowever, the cron job does not work.
I see that when I type /...path_to_executable I get a segmentation fault.
I can only execute the executable from the folder it is located in.
Is there a way I can solve this problem?
7 Answers
0 * * * * cd folder_containing_exe && ./exe_nameshould work unless there is something else that needs to be setup for the program to run.
4The solution to solve this is to find out why you're getting the segmentation fault, and fix that.
You can also use @hourly instant of 0 * * * *
If you're using Ubuntu, you can put a shell script in one of these directories: /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly or /etc/cron.weekly.
For more detail, check out this post:
Did you mean the executable fails to run , if invoked from any other directory? This is rather a bug on the executable. One potential reason could be the executable requires some shared libraires from the installed folder. You may check environment variable LD_LIBRARY_PATH
Since I could not run the C executable that way, I wrote a simple shell script that does the following
cd /..path_to_shell_script
./c_executable_nameIn the cron jobs list, I call the shell script.
use
path_to_exe >> log_fileto see the output of your command also errors can be redirected with
path_to_exe &> log_filealso you can use
crontab -l
to check if your edits were saved.
1