我需要设置一个 cron 作业,每小时运行一次使用 gcc 编译的可执行文件。
我以 root 身份登录并输入 crontab -e
然后我输入以下内容并保存文件。
0 * * * * /path_to_executable
但是,cron 作业不起作用。
我看到当我输入 /...path_to_executable
时出现分段错误。我只能从它所在的文件夹执行可执行文件。有没有办法解决这个问题?
0 * * * * cd folder_containing_exe && ./exe_name
除非需要设置其他东西才能运行程序,否则应该可以工作。
解决此问题的解决方案是找出您遇到分段错误的原因并修复它。
您还可以使用 0 * * * *
的 @hourly
瞬间
@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
检查您的编辑是否已保存。