使用PHP来流数据的程序,如' htop '



使用其中一个代码

system("htop");
//or
exec('htop');

如何保持数据从htop写入文件或其他东西(脚本的时间限制设置为0,不用担心)

htop是一个交互式程序,它在循环中运行直到退出,并且似乎没有提供任何标志来进行单次迭代然后退出,这使得捕获输出存在问题。

你考虑过使用top吗?您可以使用-n 1:

将其限制为1次迭代。
$resp = system("top -n 1");
print $resp; 

这是另一种解决方案,即使用虚拟终端并执行屏幕捕获,然后关闭会话。这是一个很好的hack,但是top -n - 1在资源使用方面更有效。您需要在redhat/centos中执行yum screen。似乎包含在ubuntu/debian中。

<?php
`screen  -d -m -S htop_session htop`;
sleep(1);
`screen -p 0 -S htop_session -X hardcopy`;
`screen -p 0 -S htop_session -X quit`;
?>
<pre>
<?php print file_get_contents('hardcopy.0'); ?>
</pre>

我同意@d_g的回答,top是一个打算在终端上运行的程序。我建议使用AJAX经常更新top的输出

此外,我想添加关于函数passthru()的信息。该函数将shell命令的输出直接打印到php的标准输出中。在外部程序完成之前,您不需要额外的打印和输出。如果命令需要很长时间来处理,这一点很重要。所以你可以替换:

$resp = system("top -n 1");
print $resp; 

passthru('top -n 1');

systemexec以字符串形式返回命令的结果。使用fwrite或类似的函数将输出保存到文件

相关内容

  • 没有找到相关文章

最新更新