craftpip/process-handler

通过名称或进程ID获取正在运行的进程列表,支持Windows和Unix

v2.0.0 2023-04-17 19:51 UTC

This package is not auto-updated.

Last update: 2024-09-17 02:33:08 UTC


README

Build Status

通过名称或进程ID获取正在运行的进程列表,支持Windows和Unix

我很难找到一个返回操作系统进程列表的库。我的用例是查找我启动的进程是否正在运行。

用法

// Include your autoload 
require_once 'vendor/autoload.php';

use \Craftpip\ProcessHandler\ProcessHandler;
use \Symfony\Component\Process\Process;

// Initialize your library
$processHandler = new ProcessHandler();

// Spawn a process and check if a process by its pid exists.
$symfonyProcess = new Process('ls');
$symfonyProcess->start();
$pid = $symfonyProcess->getPid(); // 8378

$process = $processHandler->getProcess($pid);
if($process){
    $name = $process->getName();
    $pid = $process->getPid();
    $mem_used = $process->getMemUsed();
    $cpu_time = $process->getCpuTime();
    $session = $process->getSession();
    $session_name = $process->getSessionName();
    $status = $process->getStatus();
    $username = $process->getUsername();
    $window_title = $process->getWindowTitle();
    $is_running = $process->isRunning();
    
    /*
    Examples
    returns the following on UNIX
    [0] => Array
            (
                [name] => [sh] <defunct>
                [pid] => 8378
                [session_name] => 
                [session] => 6065
                [mem_used] => 0 KB
                [status] => RUNNING
                [username] => root
                [cpu_time] => 00:00:00
                [window_title] => 
            )
            
    returns the following on WINDOWS
    [0] => Array
            (
                [name] => cmd.exe
                [pid] => 6380
                [session_name] => Console
                [session] => 1
                [mem_used] => 3,504 K
                [status] => Unknown
                [username] => BONIFACE-PC\boniface
                [cpu_time] => 0:00:00
                [window_title] => N/A
            )

    returns the following on macOS
    [0] => Array
            (
                [name] => (sh)
                [pid] => 62951
                [session_name] =>
                [session] => 0
                [mem_used] => 0 KB
                [status] => RUNNING
                [username] => username
                [cpu_time] => 0:00.00
                [window_title] =>
            )
    */
}else{
    // process was not found.
}


// get all processes 
$allProcesses = $processHandler->getAllProcesses();

方法

$processHandler = new ProcessHandler();
$processHandler->getAllProcesses();
$processHandler->getProcess($pid);
$processHandler->isRunning($pid);

安装

运行composer命令

composer require craftpip/process-handler

ProcessHandler可以通过Composer安装,只需将库作为依赖项添加到您的composer.json文件中。

{
    "require": {
        "craftpip/process-handler": "~1.0"
    }
}

贡献

请随时贡献或添加内容。

版权和许可

版权(C)2017 Boniface Pereira

MIT许可下授权。