processLoad linux new version
This commit is contained in:
parent
95b93af551
commit
e978036c6f
@ -902,8 +902,6 @@ function processLoad(proc, callback) {
|
||||
}
|
||||
let processes = processesString.split('|');
|
||||
let result = [];
|
||||
let dataProcesses = [];
|
||||
let allProcesses = [];
|
||||
|
||||
const procSanitized = util.isPrototypePolluted() ? '' : util.sanitizeShellString(proc);
|
||||
|
||||
@ -1106,11 +1104,15 @@ function processLoad(proc, callback) {
|
||||
}
|
||||
if (_linux) {
|
||||
// calc process_cpu - ps is not accurate in linux!
|
||||
result.forEach(function (item) {
|
||||
item.cpu = 0;
|
||||
})
|
||||
let cmd = 'cat /proc/stat | grep "cpu "';
|
||||
for (let i = 0; i < result.pids.length; i++) {
|
||||
cmd += (';cat /proc/' + result.pids[i] + '/stat');
|
||||
for (let i in result) {
|
||||
for (let j in result[i].pids) {
|
||||
cmd += (';cat /proc/' + result[i].pids[j] + '/stat');
|
||||
}
|
||||
}
|
||||
|
||||
exec(cmd, { maxBuffer: 1024 * 20000 }, function (error, stdout) {
|
||||
let curr_processes = stdout.toString().split('\n');
|
||||
|
||||
@ -1120,14 +1122,23 @@ function processLoad(proc, callback) {
|
||||
// process
|
||||
let list_new = {};
|
||||
let resultProcess = {};
|
||||
result.cpu = 0;
|
||||
|
||||
for (let i = 0; i < curr_processes.length; i++) {
|
||||
resultProcess = calcProcStatLinux(curr_processes[i], all, _process_cpu);
|
||||
|
||||
if (resultProcess.pid) {
|
||||
|
||||
// find result item
|
||||
let resultItemId = -1;
|
||||
for (let i in result) {
|
||||
if (result[i].pids.indexOf(resultProcess.pid) >= 0) {
|
||||
resultItemId = i;
|
||||
}
|
||||
}
|
||||
// store pcpu in outer result
|
||||
result.cpu += resultProcess.cpuu + resultProcess.cpus;
|
||||
if (resultItemId >= 0) {
|
||||
result[resultItemId].cpu += resultProcess.cpuu + resultProcess.cpus;
|
||||
}
|
||||
|
||||
// save new values
|
||||
list_new[resultProcess.pid] = {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user