@remy/pstree
Version:
Collects the full tree of processes from /proc
29 lines (23 loc) • 652 B
JavaScript
const exec = require('child_process').exec;
const psTree = require('ps-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 psTree(pid, callback);
}
utils
.getStat()
.then(utils.tree)
.then(tree => utils.pidsForTree(tree, pid))
.then(res => callback(null, res))
.catch(error => callback(error));
};
module.exports.hasPS = hasPS;