1
我有一個條件,我必須在指定端口上啓動iperf服務器作爲後臺進程,並且如果iperf服務器正在運行,我必須向客戶端發送響應。我試過在laravel 4.2後臺運行任務
shell_exec('iperf -s -p {port} -D');
但它不返回控制/無限循環開始。 服務器將啓動,但shell_exec
以下的代碼將不會執行。 任何人有一個解決方案或建議我應該如何處理這個來獲得結果?
我有一個條件,我必須在指定端口上啓動iperf服務器作爲後臺進程,並且如果iperf服務器正在運行,我必須向客戶端發送響應。我試過在laravel 4.2後臺運行任務
shell_exec('iperf -s -p {port} -D');
但它不返回控制/無限循環開始。 服務器將啓動,但shell_exec
以下的代碼將不會執行。 任何人有一個解決方案或建議我應該如何處理這個來獲得結果?
你的命令iperf -s -p {port} -D
恰好有stderr輸出,試試這樣做:
$outfile = "/tmp/erroutperf.out";
$port = 8080;
shell_exec("iperf -s -p $port -D > $outfile 2>&1");
基本附加命令> /tmp/erroutperf.out 2>&1
,告訴Bash程序(iperf的)的兩個標準錯誤輸出和標準輸出保存 到一個文件/ TMP/erroutperf.out
獲取命令的輸出是:
file_get_contents($outfile);