Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

process-handler

Build Status

Get list of running processes by name or pid, supports windows and unix

I struggled to find a library that returns the processes list for the operating system. My use case was to find if my spawned process was running or not.

Usage

// 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();

Methods

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

Installation

Run the composer command

composer require craftpip/process-handler

ProcessHandler can be installed with Composer by adding the library as a dependency to your composer.json file.

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

Contribute

Please feel free to contribute or make additions.

Copyright and license

Copyright (C) 2017 Boniface Pereira

Licensed under the MIT license.

About

Get list of running processes by name or pid, supports windows, unix and mac

Resources

License

Packages

No packages published

Languages

You can’t perform that action at this time.