What is pidtree?
The pidtree npm package is a Node.js module that allows you to list all running processes in a hierarchical tree structure based on their process IDs (PIDs). It can be used to find parent and child processes of a given PID, which is useful for monitoring and managing system processes programmatically.
What are pidtree's main functionalities?
Get an array of all running processes as a tree
This code sample demonstrates how to retrieve a tree of all running processes. The '-1' argument specifies that the tree should start with the root process. The callback function receives the tree structure or an error.
const pidtree = require('pidtree');
pidtree(-1, function (err, tree) {
if (err) throw err;
console.log(tree);
});
Get a tree of child processes for a specific PID
This code sample shows how to get a tree of child processes for a specific PID. Replace '1234' with the PID of the process you want to inspect. The callback function will receive the tree of child processes or an error.
const pidtree = require('pidtree');
const pid = 1234; // Replace with the target PID
pidtree(pid, function (err, tree) {
if (err) throw err;
console.log(tree);
});
Other packages similar to pidtree
ps-tree
The ps-tree package is similar to pidtree in that it also provides a way to list child processes of a given PID. However, ps-tree does not create a hierarchical tree structure but instead returns a flat list of child processes.
tree-kill
While tree-kill does not provide a way to list processes, it offers related functionality by allowing users to kill all processes in the tree of a given PID. This is useful for cleaning up child processes when the parent process is terminated.
pidtree
🚸 Cross platform children list of a PID.
Coded with ❤️ by Simone Primarosa.
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')
pidtree(process.pid, function (err, pids) {
console.log(pids)
})
pidtree(process.pid, {root: true}, function (err, pids) {
console.log(pids)
})
pidtree(-1, function (err, pids) {
console.log(pids)
})
pidtree(1, {advanced: true}, function (err, pids) {
console.log(pids)
})
const pids = await pidtree(1)
console.log(pids)
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
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
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 -
Cross-platform process cpu % and memory usage of a PID
Authors
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.