user3458338
user3458338

Reputation:

PHP script to get CPU utilization for each process?

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

Upvotes: 1

Views: 4230

Answers (3)

Andresch Serj
Andresch Serj

Reputation: 37308

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.

Upvotes: 1

AeroX
AeroX

Reputation: 3443

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.

Upvotes: 1

AeroX
AeroX

Reputation: 3443

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.

Upvotes: 1

Related Questions