Monitor & manage system processes in PHP for Linux & Windows(basic support).
composer require tetreum/process-monitor "1.*"
To see all available process commands & properties, check: https://github.com/tetreum/ProcessMonitor/blob/master/src/Process.php
use ProcessMonitor\ProcessMonitor;
$monitor = new ProcessMonitor();
$process = $monitor->search("apache");
if (!$process) {
exit;
}
echo "Apache (PID: " . $process->pid . ") is using " . $process->cpu . "% CPU and " . $process->ram . " RAM";
use ProcessMonitor\ProcessMonitor;
$monitor = new ProcessMonitor();
$process = $monitor->search("rust-server");
if (!$process) {
exit;
}
if ($process->defunct) {
$process->kill();
// or you can just kill it's childs
// $process->killChilds();
}
use ProcessMonitor\ProcessMonitor;
$monitor = new ProcessMonitor();
$processList = $monitor->searchMultiple("rust-server|nginx");
You can also get a summary of the top consuming processes of this search
use ProcessMonitor\ProcessMonitor;
$monitor = new ProcessMonitor();
$result = $monitor->searchMultiple("rust-server|nginx", true);
// $result->processes contains the process list
// $result->summary:
// $result->summary["cpu"] // the most cpu consuming process
// $result->summary["defunct"] // returns any defunct process
/*
[summary] => Array
(
[cpu] => ProcessMonitor\Process Object
(
[user] => root
[pid] => 1230
[cpu] => 5
[ram] => 0.1
[vsz] => 15624
[rss] => 1412
[tty] => ?
[stat] => Ss
[start] => Apr13
[time] => 0:00
[command] => nginx: master process /usr/sbin/nginx
[defunct] =>
[debug:protected] =>
)
[defunct] =>
)
*/
- I get a "Fatal error: Class 'COM' not found" in Windows:
In php.ini
add:
[PHP_COM_DOTNET]
extension=php_com_dotnet.dll
- I don't know where my php.ini file is:
php --ini