2015-11-08 35 views
1

我正試圖編寫一個啓動多個進程的cronjob,我想要並行運行。從PHP調用Shell命令而不考慮輸出

我正在使用一個調用每個命令的foreach,但命令行等待輸出。我不希望它。

想知道是否有人曾經爲此使用任何庫?

回答

1

的命令後添加一個符號:

$ php task.php & 

它將運行PHP的該實例在後臺繼續。

+0

注意在基於Unix的系統這僅適用於使用「開始/ B」 +命令,要做到這一點在Windows服務器上。 – MiDri

0

如果你讀the manual on passthru如果程序開始使用此功能,以便它繼續在後臺運行,輸出你會發現它會告訴你如何避免這種情況?

的程序必須重定向到一個文件或另一個輸出流。否則會導致PHP掛起,直到程序執行結束。

所以你可以依靠UNIX FDS輸出重定向到像/dev/null例如,如果你不關心輸出或部分文件,如果你想保存輸出,這將避免PHP等待該命令完成。

pssthru("somecommand > /some/path/to/file")