使用其中一个代码
system("htop");
//or
exec('htop');
如何将htop中的数据写入文件或其他内容(脚本的时间限制设置为0,不用担心)
答案 0 :(得分:2)
htop是一个交互式程序,它在循环中运行直到退出,并且似乎没有提供任何标记来执行单次迭代然后退出,这使捕获输出成为问题。
你考虑过使用top吗?您可以使用-n 1:
将其限制为1次迭代$resp = system("top -n 1");
print $resp;
答案 1 :(得分:1)
<?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>
答案 2 :(得分:0)
system
和exec
以字符串形式返回命令的结果。使用fwrite或类似功能将输出保存到文件中。
答案 3 :(得分:0)
我同意@d_g的答案,top是一个打算在终端中运行的程序。我建议使用AJAX来更新频繁的输出。
此外,我想添加有关函数passthru()
的信息。该函数将shell命令的输出直接打印到php的stdout。在外部程序完成之前,您不需要额外的打印和输出。如果命令需要很长时间才能处理,那很重要。所以你可以替换:
$resp = system("top -n 1");
print $resp;
通过
passthru('top -n 1');