1

我有一个条件,我必须在指定端口上将 iperf 服务器作为守护进程启动,如果 iperf 服务器正在运行,我必须向客户端发送响应。我试过了

shell_exec('iperf -s -p {port} -D'); 

但它不返回控制/无限循环开始。服务器将启动,但下面的代码shell_exec将永远不会执行。任何人都有解决方案或建议我应该如何处理以获得结果?

4

1 回答 1

2

您的命令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);
于 2016-02-01T11:08:27.150 回答