Skip to content

eljefedelrodeodeljefe/process-observe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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