我有一个应该在后台运行进程的函数
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
答案 0 :(得分:0)
您可以使用:$cmd= include("php ..\runffmpeg.php");
答案 1 :(得分:0)
HMM;忘记进程mgmt和popen()资源。 如果它是守护进程,则可以访问它,否则使用popen()/ pclose()创建/销毁子进程。