如何使用 Php 在 Web 浏览器上显示 'top' 命令的输出

How to display output of 'top' command on web browser using Php

我有一个简单的 php 脚本 'top.php',具有 shell_exec 功能。

代码:

<?php
echo shell_exec("top");
?>

我正在寻找的是在网络浏览器上查看 'top' 命令的结果。所以,如果我访问 http://192.168.1.1/top.php 我想查看 top 命令的结果。必须定期查看 top 命令的结果,就像您在命令行终端中看到的那样。

但是,当我在网络浏览器上访问“http://192.168.1.1/top.php”时,它没有显示任何内容。当我在命令行上执行 top.php 时,行为相同(如 'php top.php')。

我不确定哪里出错了.....

默认情况下,命令行上的

top 只保留 运行,所以我怀疑这里发生的事情是它没有退出并将输出返回到 PHP。 -n 1 标志应该解决:

<?php
echo shell_exec("top -n 1");
?>

这将为您提供来自 top 的 "page" 个输出,以显示在您的网页上。要刷新的话,当然是刷新网页即可。

为了让事情变得更顺畅(你不必刷新页面),你可以有一个页面向这个 PHP 脚本发出 AJAX 请求,然后显示页面输出。然后可以在 JavaScript 中使用 setInterval() 安排 AJAX 请求在您认为合适的情况下每隔 X 秒发生一次。