tree.js
772 Bytes
const spawn = require('child_process').spawn;
module.exports = function(rootPid, callback) {
const tree = {};
var output = '';
// *nix
const ps = spawn('ps', ['-A', '-o', 'ppid,pid']);
ps.stdout.on('data', data => {
output += data.toString('ascii');
});
ps.on('close', () => {
try {
const res = output
.split('\n')
.slice(1)
.map(_ => _.trim())
.reduce((acc, line) => {
if (line.indexOf(rootPid + ' ') === 0) {
const pid = line.split(/\s+/).pop();
acc.push(parseInt(pid, 10));
rootPid = pid;
}
return acc;
}, []);
callback(null, res);
} catch (e) {
callback(e, null);
}
});
};