用于获取每个进程的 CPU 利用率的 PHP 脚本


PHP script to get CPU utilization for each process?

如何使用 PHP 获取当前在本地系统或服务器上运行的每个进程的 CPU 使用率。

如何使用命令提示符命令tasklist从 PHP 中获取进程名称和内存信息。

这是一个例子:

Name of Processor     Memory usage
Edit plus              6.1 MB
Google Chrome           20 MB
Command Prompt           5 MB
Tomcat                 2.1 MB

看到您更改了答案的规范,我不想删除或屠宰我的其他答案,这可能是其他人可以接受的解决方案。

如果必须使用命令提示符命令tasklist检索进程数据,则可以使用 PHP 中的exec()调用此应用程序。

<?php
exec('tasklist.exe', $outputLines);
foreach($line in $outputLines)
{
    //Extract information from String...
}
?>

然后,您需要使用字符串操作来提取所需的信息。 正则表达式可能是一个不错的选择。

有一个PECL软件包用于报告Windows进程,称为Win32ps(PHP手册页|PECL页面)。

使用此扩展,您应该能够检索和输出正在运行的进程列表,如下所示:

<?php
$procs = win32_ps_stat_proc();
foreach($proc in $procs)
{
    echo basename($proc['exe']) . " - " . $proc['mem']['working_set_size'] . "'r'n";
}
?>

这是仅限Microsoft Windows的解决方案。

对于非Windows系统在给出此答案后添加了Windows标签):

可能您想使用您的服务器操作系统为此提供的任何服务并通过 PHP 访问它。如果你在Unix机器上,可能有一个像ps这样的命令行工具。

ps aux | less

在此处阅读ps

您可以执行此操作并使用 php 中的 exec 获取输出。

echo exec('ps aux | less');

您可以使用 PHP 字符串操作函数轻松解析该输出。