process-observe

0.3.3 • Public • Published

process-observe

Native bindings to observation APIs like sysctl (BSDs), proc/{pid}/ (Linux) and Windows equivalents in the context of process observation.

Build Status Build status js-standard-style Join the chat at https://gitter.im/eljefedelrodeodeljefe/process-observe

NPM

TL;DR

In some cases you have orphaned process or just want to watch certain processes. To work with them from node you need either handles to them or need to observe them first. This module aids those purposes.

// inspect your current process (here assuming that you have just spawned
// a new process), here with async API
observe.children(process.pid, (err, result) => {
    if (err)
        console.log(err)
 
    console.log(result)
    // -> {pids: [5841], count: 1}
})

Implementation Status

Method implemented
.info(pid [, cb]) yes
.children(pid [, cb]) yes

Overview

Technical Overview

Rquirements:

  • Node 4.0.0+

Platform

This module is currently tested on:

Platform 0.12 3.0 4.0 5.0 6.0
Mac OS X - - yes yes yes
BSDs - - - - -
Linux - - yes yes yes
Windows - - - - -

Roadmap

Please see list of the implemented methods for now.

API

ProcessObserve

Kind: global class

processObserve.children(pid, [cb]) ⇒ Object

Query a process associated with a specified pid for the number of and a list of pids of childnre it has.

Kind: instance method of ProcessObserve
Returns: Object - returns an object with [0] the list of pids and [1] their count

Param Type Description
pid Number pid to query
[cb] function optional callback. If provided sync function will be called on next tick.

Example

const observe = require('process-observer')
// query the OS pid for all its children (100+), here with sync API
observe.children(0)
// -> {pids: [1, 2, 50, ...], count: 121}
 
// inspect your current process (here assuming that you have just spawned
// a new process), here with async API
observe.children(process.pid, (err, result) => {
  if (err)
    console.log(err)
  console.log(result)
  // -> {pids: [5841], count: 1}
})

processObserve.info(pid, [cb]) ⇒ Object

Query a process associated with a specified pid a wider process specific data such as a its parent, children, hardware usage etc. (see list TBD)

Kind: instance method of ProcessObserve
Returns: Object - returns an object with process specific data

Param Type Description
pid Number pid to query
[cb] function optional callback. If provided sync function will be called on next tick.

Example

const observe = require('process-observer')
const currenProcess = process.pid
// sync
observe.info(currenProcess)
// -> { pid: 3804, parent_pid: 3803, children_count: 1, children: [ 3805 ]}
 
// async
observe.info(currenProcess, (err, result) => {
  if (err)
    console.log(err)
  console.log(result)
   // -> {pid: 3804, parent_pid: 3803, children_count: 1, children: [ 3805 ]}
})

License

MIT

Dependents (0)

Package Sidebar

Install

npm i process-observe

Weekly Downloads

2

Version

0.3.3

License

MIT

Last publish

Collaborators

  • eljefederodeodeljefe