从PHP启动命令行而不阻止导航器

时间:2016-11-22 16:26:56

标签: php shell asynchronous

我需要做什么:我需要从shell中导航器中的index.php文件启动三个命令,而不会在每个命令上阻止导航器,但每个命令都需要等待前一个命令一个完成才能开始。

我尝试了什么(使用了此链接http://php.net/manual/en/function.exec.php中的第一个注释):

$launchGeneration = function ($appName, $id_application) {
            $cmd = "gradlew assembleDebug && cd ../../../api2 && php scriptUpdate.php " . $id_application;
            chdir("../api/tmp/" . $appName . "/");
            if (substr(php_uname(), 0, 7) == "Windows"){ 
                pclose(popen("start /B ". $cmd, "r"));  
            } 
            else { 
               exec($cmd . " > /dev/null &");   
            }
            exec($cmd);
    };

使用此方法,导航器不会等待命令完成,但问题是我还需要在其他命令启动之前完成第一个命令。第一个将构建一个应用程序,然后第三个将修改我的数据库中的一些数据,以将编译的状态从“等待”更改为“完成”。但在这种情况下,状态将在构建结束前更改为“已完成”。

目前我正在使用Windows,但最终它将在unix系统上运行。如果用Windows无法完成,我可以用debian切换。

有没有办法在不阻挡导航器的情况下逐个启动多个命令?

0 个答案:

没有答案