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

can't execute gnu parallel when called from cron, but works from command line

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

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

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

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

我得到一个 return 代码:

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 调用时它不会 运行?

谢谢!

我想你的 php 命令没有找到。 运行 which php 并替换它。

它可能看起来像这样:/usr/bin/php.

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


也可以使用 parallel.