系统命令从控制台运行,但不是从linux中的crontab运行

时间:2014-01-20 07:54:30

标签: php crontab

我试过在php文件中编写下面的命令,然后从控制台和crontab运行那个php文件。我在php文件中的代码就像

#!/usr/bin/php -q
<?php
 system ("/usr/local/sbin/googletts-cli.pl -o /var/lib/asterisk/sounds/asdapp/test.wav -s 0.9 -l en -t 'Some text is written here'");
?>

如果我从consol运行这个php文件,那么它工作正常并生成wav文件。但是如果我把那个php文件放在crontab中

* * * * *  /var/lib/asterisk/agi-bin/asdapp/jagu_test.php

然后它没有生成wav文件。

我也尝试过以下链接中提供的解决方案:

Why is crontab not executing my PHP script?

PHP script works from command line, not from cron

我尝试过各种方法从crontab运行这个php文件,但是无法取得任何成功。任何人都知道究竟是什么问题或任何解决方案?

1 个答案:

答案 0 :(得分:0)

从crontab和命令行执行的命令具有不同的环境变量,工作路径和用户(如果没有另外指定)。

此外,您只是为了调用系统命令而调用PHP解释器。将这一行放在crontab本身会容易得多:

 * * * * * /usr/local/sbin/googletts-cli.pl -o /var/lib/asterisk/sounds/asdapp/test.wav -s 0.9 -l en -t 'Some text is written here'