我有一个条件,我必须在指定端口上将 iperf 服务器作为守护进程启动,如果 iperf 服务器正在运行,我必须向客户端发送响应。我试过了
shell_exec('iperf -s -p {port} -D');
但它不返回控制/无限循环开始。服务器将启动,但下面的代码shell_exec
将永远不会执行。任何人都有解决方案或建议我应该如何处理以获得结果?
我有一个条件,我必须在指定端口上将 iperf 服务器作为守护进程启动,如果 iperf 服务器正在运行,我必须向客户端发送响应。我试过了
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);