1234567891011121314151617181920212223242526272829303132333435 |
- 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);
- }
- });
- };
|