blob: 6d9bb5fb8162c3c7c06099723f1dbadfdc6da025 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
'use strict';
var os = require('os');
var bin = require('./bin');
/**
* Gets the list of all the pids of the system through the ps command.
* @param {Function} callback(err, list)
*/
function ps(callback) {
var args = ['-A', '-o', 'ppid,pid'];
bin('ps', args, function(err, stdout, code) {
if (err) return callback(err);
if (code !== 0) {
return callback(new Error('pidtree ps command exited with code ' + code));
}
// Example of stdout
//
// PPID PID
// 1 430
// 430 432
// 1 727
// 1 7166
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 = ps;
|