const exec = require('child_process').exec; const tree = require('./tree'); const utils = require('./utils'); var hasPS = true; // discover if the OS has `ps`, and therefore can use psTree exec('ps', (error) => { module.exports.hasPS = hasPS = !error; }); module.exports = function main(pid, callback) { if (typeof pid === 'number') { pid = pid.toString(); } if (hasPS && !process.env.NO_PS) { return tree(pid, callback); } utils .getStat() .then(utils.tree) .then((tree) => utils.pidsForTree(tree, pid)) .then((res) => callback( null, res.map((p) => p.PID) ) ) .catch((error) => callback(error)); }; if (!module.parent) { module.exports(process.argv[2], (e, pids) => console.log(pids)); } module.exports.hasPS = hasPS;