You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'use strict';
var os = require('os');var bin = require('./bin');
/** * Gets the list of all the pids of the system through the wmic command. * @param {Function} callback(err, list) */function wmic(callback) { var args = ['PROCESS', 'get', 'ParentProcessId,ProcessId']; var options = {windowsHide: true, windowsVerbatimArguments: true}; bin('wmic', args, options, function(err, stdout, code) { if (err) { callback(err); return; }
if (code !== 0) { callback(new Error('pidtree wmic command exited with code ' + code)); return; }
// Example of stdout
//
// ParentProcessId ProcessId
// 0 777
try { stdout = stdout.split(os.EOL);
var list = []; for (var i = 1; i < stdout.length; i++) { stdout[i] = stdout[i].trim(); if (!stdout[i]) continue; stdout[i] = stdout[i].split(/\s+/); stdout[i][0] = parseInt(stdout[i][0], 10); // PPID
stdout[i][1] = parseInt(stdout[i][1], 10); // PID
list.push(stdout[i]); }
callback(null, list); } catch (error) { callback(error); } });}
module.exports = wmic;
|