103

我需要设置一个 cron 作业,每小时运行一次使用 gcc 编译的可执行文件。

我以 root 身份登录并输入crontab -e

然后我输入以下内容并保存文件。

0 * * * *  /path_to_executable

但是,cron 作业不起作用。

我看到当我输入时/...path_to_executable出现分段错误。我只能从它所在的文件夹执行可执行文件。有没有办法解决这个问题?

4

7 回答 7

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

除非需要设置其他东西才能运行程序,否则应该可以工作。

于 2010-08-13T16:31:23.240 回答
8

解决此问题的解决方案是找出您遇到分段错误的原因并修复它。

于 2010-08-20T19:52:05.030 回答
7

你也可以使用@hourlyinstant of0 * * * *

于 2016-12-27T09:39:34.647 回答
5

如果您使用的是 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

于 2017-02-24T19:33:05.637 回答
2

如果从任何其他目录调用,您的意思是可执行文件无法运行吗?这是可执行文件上的一个错误。一个潜在的原因可能是可执行文件需要已安装文件夹中的一些共享库。您可以检查环境变量LD_LIBRARY_PATH

于 2010-08-13T16:51:04.367 回答
0

由于我无法以这种方式运行C可执行文件,因此我编写了一个简单的方法shell script来执行以下操作

cd /..path_to_shell_script
./c_executable_name

在 cron 作业列表中,我调用了 shell 脚本。

于 2010-08-13T16:31:45.473 回答
0

利用

path_to_exe >> log_file

查看命令的输出也可以重定向错误

path_to_exe &> log_file

你也可以使用

crontab -l

检查您的编辑是否已保存。

于 2010-08-13T06:07:42.557 回答