process-observe
v0.3.3
Published
Make processes observable.
Downloads
4
Readme
process-observe
Native bindings to observation APIs like sysctl
(BSDs), proc/{pid}/
(Linux) and Windows equivalents in the context of process observation.
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
- .info(pid, [cb]) ⇒ Object
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