从cron调用时无法执行gnu parallel,但可以从命令行运行

时间:2017-02-22 14:57:02

标签: php permissions cron gnu-parallel

我在亚马逊EC2 ami linux(centos)实例的cron中有这个命令:

10 9 * * * php -f /var/scripts/schtask/schtask.php

在这个程序中,它使用调用gnu parallel的exec()函数运行此行:

parallel -j-1 < /var/scripts/_working_files/schtask/schtask/_output/micros_schtask__2017-02-22__09.10.01__4ec2d995fd6fb5e7c866e13502714f36.txt

我收到的返回码为:

127

执行时。我在gnu并行退出状态列表中找不到此错误:

https://www.gnu.org/software/parallel/man.html#EXIT-STATUS

文本文件的内容与此类似:

#comment 1
#comment 2

php -f /var/scripts/micros/scripts/micros.php /store_list:"s1"
php -f /var/scripts/micros/scripts/micros.php /store_list:"s2"
php -f /var/scripts/micros/scripts/micros.php /store_list:"s3"

但是,如果我跑:

parallel -j-1 < /var/scripts/_working_files/schtask/schtask/_output/micros_schtask__2017-02-22__09.10.01__4ec2d995fd6fb5e7c866e13502714f36.sh

直接在命令行上,工作。退出代码是什么意思,为什么从cron调用时它不会运行?

谢谢!

1 个答案:

答案 0 :(得分:2)

我认为找不到您的php命令。运行which php并替换它。

可能如下所示:/usr/bin/php

10 9 * * * /usr/bin/php -f /var/scripts/schtask/schtask.php


也可以使用parallel执行此操作。