2016-08-03 55 views
0

上午執行shell命令,如下所示。shell_exec阻止線程無法繼續執行下一個窗口中的語句

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

http://stackoverflow.com/questions/3819398/php-exec-command-或類似於不等待結果 – Janno

+0

函數execInBackground($ cmd){ if(substr(php_uname(),0,7)==「Windows」){ploose(popen(「start/B 「。$ cmd,」r「)); } else { exec($ cmd。「>/dev/null &"); } } – user2786092

回答

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

相關問題