12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- '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;
|