Php 从cron脚本写入crontab返回127错误

Php 从cron脚本写入crontab返回127错误,php,crontab,Php,Crontab,我正在使用一些必须从crontab执行的脚本。他们中的一些人重写了crontab in.php定义了read.php是否应该由crontab运行。然后read.php由crontab执行。这个很好用 执行read.php时,它可能会检测到它不应该运行,如果发生这种情况,它会重写crontab以避免自己执行,直到in.php再次重写crontab。问题是第二步不起作用 我一直在寻找错误,我发现我的cron.txt写得正确。但是,crontab命令失败并返回127个错误。但是当我手动执行read.p

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

in.php定义了read.php是否应该由crontab运行。然后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

,我们只能推测出哪里出了问题,但更简单、更健壮的解决方案是添加一个决定是否执行实际作业的包装器,并且总是从crontab运行包装器。在最简单的情况下,仅当文件存在时才执行该文件:

55 * * * * test -x hourly && ./hourly
$HOME/hourly
重命名为其他名称,以防止其执行

或者,如果条件很简单,如果条件不满足,就让脚本尽早退出

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

你想编辑什么<代码>/etc/crontab?一些
crontab-e
?事实上,如果read.php检测到它不应该运行,它不会做任何事情。(在本例中,它重写crontab)。问题是,检查它是否必须运行涉及一个sql查询,并且它每分钟都在执行。我正在考虑其他方法。事实上,其中之一是通过读取文件来检查read.php是否应该运行,并避免sql查询。在这种情况下,我不需要重写cron。是的,我想这会管用的。非常感谢。