从cron脚本编写crontab会返回127错误

时间:2013-08-24 16:24:48

标签: php crontab

我正在使用一些必须从crontab执行的脚本。其中一些重写了crontab。

in.php定义是否应该由crontab运行read.php。然后read.php由crontab执行。这很好。

当执行read.php时,它可能会检测到它应该没有运行,如果发生这种情况,它会重写crontab以避免自己的执行,直到in.php再次重写crontab。问题是第二步不起作用。

我一直在寻找错误,我发现我的cron.txt写得正确。但是,crontab命令失败并返回127错误。但是当我手动执行read.php时,一切正常。

两个脚本都使用相同的函数来重写crontab。但这只发生在read.php中,而不是in.php。

是否有时间重写crontab,因为它执行任务?它可以解释我的问题,因为in.php执行的时间比read.php要长。

谢谢!

PD:我已经检查过crontab命令中cron.txt的路径是否相同,如果它自动执行并且我手动执行它。

编辑:当我谈到重写crontab时,我引用重写cron.txt文件并执行crontab [path]/cron.txt

1 个答案:

答案 0 :(得分:1)

如果不能访问您的代码,我们只能推测出现了什么问题,但更简单,更强大的解决方案是添加一个包装程序来决定是否执行实际作业,并且只需始终运行包装器crontab中。在最简单的情况下,只有存在时才执行文件:

55 * * * * test -x hourly && ./hourly

$HOME/hourly重命名为其他内容,以防止其执行。

或者,如果条件很简单,只要在不符合条件的情况下尽快让脚本纾困。

case $moon_phase in full | new ) exit 0 ;; esac