2013-04-17 170 views
1

我必须在后台执行一个php脚本(test.php)。我试过,但它不工作:PHP - 在后台运行脚本

<? 
$cmd = "php /home/megad404/www/prove/test.php &> /dev/null &"; 
exec('/bin/bash -c "'.$cmd.'"',$output,$return); 
if($return===0) 
{ 
    echo 'Successful'; 
} 
else 
{ 
    echo 'Unsuccessful'; 
} 
?> 

它返回 “成功”,但它不执行test.php的

test.php的:

<? 
file_put_contents(date("s"),""); 
sleep(5); 
file_put_contents(date("s"),""); 
sleep(5); 
file_put_contents(date("s"),""); 
?> 

test.php的写入文件每5秒钟一次,并且它工作正常,除非我尝试在第一个脚本的后台执行它。

它可能是一个服务器问题?是否有另一种方法在后台运行脚本?

回答

0

使用了shell_exec和nohup的

shell_exec("nohup php /home/megad404/www/prove/test.php > /dev/null & echo $!"); 
+0

它不工作。 test.php文件可能是错误的吗? – Megadv

+0

打开控制台并写入命令'php/home/megad404/www/prove/test.php'。查看结果或错误异常。我希望你使用* nix OS,并且你已经设置了环境变量php –

+0

如何打开控制台? – Megadv