php script to get cpu utilization for each process?

天大地大妈咪最大 提交于 2019-12-12 10:27:41

问题


How do I get the CPU usage for each process that is currently running on the local system or server using PHP.

How can I use the Command Prompt command tasklist from within PHP and fetch process names and memory information.

Here is the example :

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

回答1:


Seeing as you've changed the specification for the answer and I don't wish to remove or butcher my other answer which may be an acceptable solution for others.

If you MUST use the Command Prompt command tasklist to retrieve the process data then you can then call this Application using exec() from PHP.

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

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

You will then need to use String manipulation to extract the information you want. Regex might be a good choice.




回答2:


There is a PECL package for reporting on Windows Processes called Win32ps (PHP Manual Page | PECL Page).

With this extension you should be able to retrieve and output a running processes list like so:

<?php
$procs = win32_ps_stat_proc();

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

This is a Microsoft Windows only solution.




回答3:


For non-windows systems (windows tag was added after this answer was given):

Probably you want to use whatever Service your Servers Operating System porovides for this and access it via PHP. If you a on a Unix machine, there probably is a Command Line tool like ps.

ps aux | less

Read up on ps here.

You can execute this and fetch the output using exec in php.

echo exec('ps aux | less');

you could parse that output easily using PHP String manipulation functions.



来源:https://stackoverflow.com/questions/22833547/php-script-to-get-cpu-utilization-for-each-process

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!