1

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

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

4

2 回答 2

0

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

于 2013-06-02T09:38:27.053 回答
0

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

于 2015-05-30T20:33:24.747 回答