在laravel 4.2的背景中运行任务

时间:2016-02-01 09:26:01

标签: php laravel-4.2

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

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

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

1 个答案:

答案 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);