我需要设置一个cron作业,每小时运行一次使用gcc编译的可执行文件。
我以root身份登录并输入crontab -e
然后我输入以下内容并保存文件。
0 * * * * /path_to_executable
但是,cron作业不起作用。
我看到当我输入/...path_to_executable
时,我得到了一个分段错误。我只能从它所在的文件夹中执行可执行文件。有没有办法可以解决这个问题?
0 * * * * cd folder_containing_exe && ./exe_name
应该工作,除非有其他东西需要设置程序运行。
解决这个问题的解决方案是找出你为什么会遇到分段错误并解决它。
你也可以使用@hourly
瞬间0 * * * *
如果您使用的是Ubuntu,则可以将shell脚本放在以下文件夹中:/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
您是不是意味着可执行文件无法运行,如果从任何其他目录调用?这是可执行文件的一个错误。一个可能的原因可能是可执行文件需要安装文件夹中的一些共享库。您可以检查环境变量LD_LIBRARY_PATH
由于我无法以这种方式运行C
可执行文件,我写了一个简单的shell script
,它执行以下操作
cd /..path_to_shell_script
./c_executable_name
在cron作业列表中,我调用了shell脚本。
使用
path_to_exe >> log_file
要查看命令的输出,还可以重定向错误
path_to_exe &> log_file
你也可以用
crontab -l
检查您的编辑是否已保存。