我有一个条件,我必须在指定的端口上启动iperf服务器作为守护进程,如果iperf服务器正在运行,我必须向客户端发送响应。我试过了
shell_exec('iperf -s -p {port} -D');
但它没有返回控制/无限循环启动。
服务器将启动,但shell_exec
下面的代码将永远不会执行。
任何人都有解决方案或建议如何处理这个问题以获得结果?
答案 0 :(得分:1)
您的命令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保存
stderr输出和程序的标准输出(iperf)到文件/tmp/erroutperf.out
获取命令的输出是:
file_get_contents($outfile);