shell_exec阻止线程不进入windows中的下一个语句

时间:2016-08-03 06:22:29

标签: php windows shell shell-exec

正在执行如下所示的shell命令。

shell_exec('java -jar sanityTest.jar');
$success = array('status' => "Success",'type' => "execute");
echo json_encode($success);

shell_exec命令在执行完成之前不会进入下一个语句。我想要的是在后台执行它,即使对于Windows。

我试过

shell_exec('java -jar sanityTest.jar >/dev/null 2>/dev/null &');

进入下一行但未执行命令。

1 个答案:

答案 0 :(得分:0)

我的解决方案:使用start /B *my command*

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

我可以通过查看正确的关键字找到它:https://stackoverflow.com/a/21031259/6019417