Awesome
<h1 align="center"> <b>pidtree</b> </h1> <p align="center"> <!-- Version - npm --> <a href="https://www.npmjs.com/package/pidtree"> <img src="https://img.shields.io/npm/v/pidtree.svg" alt="Latest version on npm" /> </a> <!-- Downloads - npm --> <a href="https://npm-stat.com/charts.html?package=pidtree"> <img src="https://img.shields.io/npm/dt/pidtree.svg" alt="Downloads on npm" /> </a> <!-- License - MIT --> <a href="https://github.com/simonepri/pidtree/tree/master/license"> <img src="https://img.shields.io/github/license/simonepri/pidtree.svg" alt="Project license" /> </a> <br/> <!-- Lint --> <a href="https://github.com/simonepri/pidtree/actions?query=workflow:lint+branch:master"> <img src="https://github.com/simonepri/pidtree/workflows/lint/badge.svg?branch=master" alt="Lint status" /> </a> <!-- Test - macOS --> <a href="https://github.com/simonepri/pidtree/actions?query=workflow:test-macos+branch:master"> <img src="https://github.com/simonepri/pidtree/workflows/test-macos/badge.svg?branch=master" alt="Test macOS status" /> </a> <!-- Test - Ubuntu --> <a href="https://github.com/simonepri/pidtree/actions?query=workflow:test-ubuntu+branch:master"> <img src="https://github.com/simonepri/pidtree/workflows/test-ubuntu/badge.svg?branch=master" alt="Test Ubuntu status" /> </a> <!-- Test - Windows --> <a href="https://github.com/simonepri/pidtree/actions?query=workflow:test-windows+branch:master"> <img src="https://github.com/simonepri/pidtree/workflows/test-windows/badge.svg?branch=master" alt="Test Windows status" /> </a> <!-- Coverage - Codecov --> <a href="https://codecov.io/gh/simonepri/pidtree"> <img src="https://img.shields.io/codecov/c/github/simonepri/pidtree/master.svg" alt="Codecov Coverage report" /> </a> <!-- DM - Snyk --> <a href="https://snyk.io/test/github/simonepri/pidtree?targetFile=package.json"> <img src="https://snyk.io/test/github/simonepri/pidtree/badge.svg?targetFile=package.json" alt="Known Vulnerabilities" /> </a> <br/> <!-- Code Style - XO-Prettier --> <a href="https://github.com/xojs/xo"> <img src="https://img.shields.io/badge/code_style-XO+Prettier-5ed9c7.svg" alt="XO Code Style used" /> </a> <!-- Test Runner - AVA --> <a href="https://github.com/avajs/ava"> <img src="https://img.shields.io/badge/test_runner-AVA-fb3170.svg" alt="AVA Test Runner used" /> </a> <!-- Test Coverage - Istanbul --> <a href="https://github.com/istanbuljs/nyc"> <img src="https://img.shields.io/badge/test_coverage-NYC-fec606.svg" alt="Istanbul Test Coverage used" /> </a> <!-- Init - ni --> <a href="https://github.com/simonepri/ni"> <img src="https://img.shields.io/badge/initialized_with-ni-e74c3c.svg" alt="NI Scaffolding System used" /> </a> <!-- Release - np --> <a href="https://github.com/sindresorhus/np"> <img src="https://img.shields.io/badge/released_with-np-6c8784.svg" alt="NP Release System used" /> </a> </p> <p align="center"> šø Cross platform children list of a PID. <br/> <sub> Coded with ā¤ļø by <a href="#authors">Simone Primarosa</a>. </sub> </p>Synopsis
This package is really similar to ps-tree but is faster, safer and
provides sub-children results.
Furthermore ps-tree is unmaintained.
Uuh, and a fancy CLI is also available!
Usage
var pidtree = require('pidtree')
// Get childs of current process
pidtree(process.pid, function (err, pids) {
console.log(pids)
// => []
})
// Include the given pid in the result array
pidtree(process.pid, {root: true}, function (err, pids) {
console.log(pids)
// => [727]
})
// Get all the processes of the System (-1 is a special value of this package)
pidtree(-1, function (err, pids) {
console.log(pids)
// => [530, 42, ..., 41241]
})
// Include PPID in the results
pidtree(1, {advanced: true}, function (err, pids) {
console.log(pids)
// => [{ppid: 1, pid: 530}, {ppid: 1, pid: 42}, ..., {ppid: 1, pid: 41241}]
})
// If no callback is given it returns a promise instead
const pids = await pidtree(1)
console.log(pids)
// => [141, 42, ..., 15242]
Compatibility
Linux | FreeBSD | NetBSD | SunOS | macOS | Win | AIX |
---|---|---|---|---|---|---|
ā | ā | ā | ā | ā | ā | ā |
ā = Working ā = Not tested but should work
Please if your platform is not supported file an issue.
CLI
<img src="https://github.com/simonepri/pidtree/raw/master/media/cli.gif" alt="pidtree cli" width="300" align="right"/> Show a tree of the processes inside your system inside your terminal.npx pidtree $PPID
Just replace $PPID
with one of the pids inside your system.
Or don't pass anything if you want all the pids inside your system.
npx pidtree
To display the output as a list, similar to the one produced from pgrep -P $PID
,
pass the --list
flag.
npx pidtree --list
API
<a name="pidtree"></a>
pidtree(pid, [options], [callback]) ā <code>[Promise.<Array.<Object>>]</code>
Get the list of children pids of the given pid.
Kind: global function
Returns: <code>Promise.<Array.<Object>></code> - Only when the callback is not provided.
Access: public
Param | Type | Default | Description |
---|---|---|---|
pid | <code>Number</code> | <code>String</code> | A pid. If -1 will return all the pids. | |
[options] | <code>Object</code> | Optional options object. | |
[options.root] | <code>Boolean</code> | <code>false</code> | Include the provided pid in the list. Ignored if -1 is passed as pid. |
[callback] | <code>function</code> | Called when the list is ready. If not provided a promise is returned instead. |
Related
- pidusage - Cross-platform process cpu % and memory usage of a PID
Authors
- Simone Primarosa - simonepri
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the license file for details.
<!-- Links -->