12345678910111213141516171819202122232425262728293031323334353637 |
- 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;
|