popen没有运行过程

时间:2013-06-02 09:27:16

标签: php exec popen

我有一个应该在后台运行进程的函数

function execInBackground($cmd) { 
    if (substr(php_uname(), 0, 7) == "Windows"){ 
        pclose(popen('start /B '.$cmd, "r"));  
    } 
    else { 
        exec($cmd . " > /dev/null &");   
    } 
} 

我尝试运行脚本

$cmd = "php ..\runffmpeg.php";
execInBackground($cmd);

但它什么都没做。当我尝试运行时

$cmd = 'ffmpeg -i video_in.mp4 video_out.avi';
execInBackground($cmd);

没关系。当我尝试运行时

exec("php ..\runffmpeg.php");

也没关系。 所以,pclose(popen('start / B php .. \ runffmpeg.php',“r”));不运行命令。什么问题? 我正在使用Windows和PHP 5.4.7

2 个答案:

答案 0 :(得分:0)

您可以使用:$cmd= include("php ..\runffmpeg.php");

答案 1 :(得分:0)

HMM;忘记进程mgmt和popen()资源。 如果它是守护进程,则可以访问它,否则使用popen()/ pclose()创建/销毁子进程。