Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/simonepri/pidtree

🚸 Cross platform children list of a PID.
https://github.com/simonepri/pidtree

cli list nodejs pgrep pid pids ppid ps ps-tree tree

Last synced: about 1 month ago
JSON representation

🚸 Cross platform children list of a PID.

Awesome Lists containing this project

README

        


pidtree





Latest version on npm



Downloads on npm



Project license




Lint status



Test macOS status



Test Ubuntu status



Test Windows status



Codecov Coverage report



Known Vulnerabilities




XO Code Style used



AVA Test Runner used



Istanbul Test Coverage used



NI Scaffolding System used



NP Release System used



🚸 Cross platform children list of a PID.



Coded with ❤️ by Simone Primarosa.

## Synopsis

This package is really similar to [ps-tree][gh:ps-tree] but is faster, safer and
provides sub-children results.
Furthermore ps-tree is [unmaintained][gh:ps-tree-um].

Uuh, and a fancy [CLI](#cli) is also available!

## Usage

```js
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][new issue].

## CLI

pidtree cli
Show a tree of the processes inside your system inside your terminal.

```bash
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.

```bash
npx pidtree
```

To display the output as a list, similar to the one produced from `pgrep -P $PID`,
pass the `--list` flag.

```bash
npx pidtree --list
```

## API

## pidtree(pid, [options], [callback]) ⇒ [Promise.<Array.<Object>>]
Get the list of children pids of the given pid.

**Kind**: global function
**Returns**: Promise.<Array.<Object>> - Only when the callback is not provided.
**Access**: public

| Param | Type | Default | Description |
| --- | --- | --- | --- |
| pid | Number \| String | | A pid. If -1 will return all the pids. |
| [options] | Object | | Optional options object. |
| [options.root] | Boolean | false | Include the provided pid in the list. Ignored if -1 is passed as pid. |
| [callback] | function | | Called when the list is ready. If not provided a promise is returned instead. |

## Related

- [pidusage][gh:pidusage] -
Cross-platform process cpu % and memory usage of a PID

## Authors

- **Simone Primarosa** - [simonepri][github:simonepri]

See also the list of [contributors][contributors] who participated in this project.

## License

This project is licensed under the MIT License - see the [license][license] file for details.

[new issue]: https://github.com/simonepri/pidtree/issues/new
[license]: https://github.com/simonepri/pidtree/tree/master/license
[contributors]: https://github.com/simonepri/pidtree/contributors

[github:simonepri]: https://github.com/simonepri

[gh:pidusage]: https://github.com/soyuka/pidusage
[gh:ps-tree]: https://github.com/indexzero/ps-tree
[gh:ps-tree-um]: https://github.com/indexzero/ps-tree/issues/30