我需要做什么:我需要从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切换。
有没有办法在不阻挡导航器的情况下逐个启动多个命令?