Security News
The Risks of Misguided Research in Supply Chain Security
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
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.
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);
});
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.
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.
🚸 Cross platform children list of a PID.
Coded with ❤️ by Simone Primarosa.
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!
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]
Linux | FreeBSD | NetBSD | SunOS | macOS | Win | AIX |
---|---|---|---|---|---|---|
✅ | ❓ | ❓ | ❓ | ✅ | ✅ | ❓ |
✅ = Working ❓ = Not tested but should work
Please if your platform is not supported file an issue.
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
[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. |
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the license file for details.
FAQs
Cross platform children list of a PID
The npm package pidtree receives a total of 10,313,057 weekly downloads. As such, pidtree popularity was classified as popular.
We found that pidtree demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Snyk's use of malicious npm packages for research raises ethical concerns, highlighting risks in public deployment, data exfiltration, and unauthorized testing.
Research
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.