Question

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
Was it helpful?

Solution

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.

OTHER TIPS

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.

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top