php脚本为每个进程获取cpu利用率?

时间:2014-04-03 09:36:27

标签: php windows cpu utilization

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

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

以下是示例:

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

3 个答案:

答案 0 :(得分:1)

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

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

ps aux | less

阅读ps here

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

echo exec('ps aux | less');

您可以使用PHP String manipulation functions轻松解析该输出。

答案 1 :(得分:1)

有一个PECL软件包用于报告名为Win32ps(PHP Manual Page | PECL Page)的 Windows进程

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

<?php
$procs = win32_ps_stat_proc();

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

这是 Microsoft Windows 唯一解决方案。

答案 2 :(得分:1)

看到你已经改变了答案的规格,我不想删除或删除我的其他答案,这可能是其他人可接受的解决方案。

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

<?php
exec('tasklist.exe', $outputLines);

foreach($line in $outputLines)
{
    //Extract information from String...
}
?>

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