我有一個PHP腳本,我從CLI運行。在Ubuntu中,我怎樣才能從PHP執行多個同步終端?
腳本我有以下的循環中:
foreach($array as $key => $value){
exec("gnome-terminal -e php myscript.php $key $value > /dev/null");
}
我所期待發生的是,新的終端會彈出並運行我的腳本和相關參數在不同的終端窗口同時進行。
能夠可視化數據只是爲了調試。在確認腳本正常工作後,我想使用此命令在後臺運行它:
exec("php myscript.php $key $value" > /dev/null &);
但是,兩者都沒有按預期工作。第二個命令即使運行,仍然會等待第一個腳本完成,然後才能進入下一個循環。
我使用的是Ubuntu 12.04。我怎樣才能讓它們同時運行以進行調試,然後在不同時在後臺同時默默地運行?
既然你運行的另一個PHP過程中,你有沒有考慮過使用叉? http://php.net/manual/en/function.pcntl-fork.php – 2013-04-25 09:45:40
嘗試添加'&'將gnome-terminal啓動到後臺。 – 2013-04-25 09:46:38
@therefromhere我不熟悉pcntl_fork()。 php.net文檔對我來說不是很清楚。你能舉一個如何使用它的例子嗎? – user658182 2013-04-25 09:53:42