diff --git a/CHANGELOG.md b/CHANGELOG.md index 542e42a..91fa140 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -100,6 +100,7 @@ Other changes | Version | Date | Comment | | -------------- | -------------- | -------- | +| 3.50.1 | 2018-11-23 | `services()` added possibility to specify ALL services "*" for win | | 3.50.0 | 2018-11-23 | `services()` added possibility to specify ALL services "*" for linux | | 3.49.4 | 2018-11-21 | `battery()` timeremaining optimization (linux) thanks to Jorai Rijsdijk | | 3.49.3 | 2018-11-20 | `memLayout()` optimized parsing (win) | diff --git a/README.md b/README.md index c6f80fd..bd815a6 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ async function cpu() { (last 7 major and minor version releases) -- Version 3.50.0: `services()` added possibility to specify ALL services "*" for linux +- Version 3.50.0: `services()` added possibility to specify ALL services "*" for linux/win - Version 3.49.0: `uuid()` added - os specific uuid (per installation) - Version 3.48.0: `osInfo()` added build, serial (Windows/macOS) - Version 3.47.0: `version()` added docker, postfix @@ -381,6 +381,7 @@ I also created a nice little command line tool called [mmon][mmon-github-url] ( | si.services('mysql, apache2', cb) | [{...}] | X | X | X | X | | pass comma separated string of services
pass "*" for ALL services (linux only) | | | [0].name | X | X | X | X | | name of service | | | [0].running | X | X | X | X | | true / false | +| | [0].startmode | | | | X | | manual, automatic, ... | | | [0].pcpu | X | X | X | | | process % CPU | | | [0].pmem | X | X | X | | | process % MEM | diff --git a/lib/processes.js b/lib/processes.js index a707da1..9b7d0cc 100644 --- a/lib/processes.js +++ b/lib/processes.js @@ -114,12 +114,13 @@ function services(srv, callback) { }); let singleSrv = allSrv.filter(item => { return item.name === srv; }); data.push({ - 'name': srv, - 'running': (allSrv.length && singleSrv.length ? singleSrv[0].running : ps.length > 0), - 'pcpu': parseFloat((ps.reduce(function (pv, cv) { + name: srv, + running: (allSrv.length && singleSrv.length ? singleSrv[0].running : ps.length > 0), + startmode: '', + pcpu: parseFloat((ps.reduce(function (pv, cv) { return pv + parseFloat(cv.trim().split(' ')[0]); }, 0)).toFixed(2)), - 'pmem': parseFloat((ps.reduce(function (pv, cv) { + pmem: parseFloat((ps.reduce(function (pv, cv) { return pv + parseFloat(cv.trim().split(' ')[1]); }, 0)).toFixed(2)) }); @@ -135,10 +136,11 @@ function services(srv, callback) { return e.indexOf(srv) !== -1; }); data.push({ - 'name': srv, - 'running': ps.length > 0, - 'pcpu': 0, - 'pmem': 0 + name: srv, + running: ps.length > 0, + startmode: '', + pcpu: 0, + pmem: 0 }); }); if (callback) { callback(data); } @@ -146,10 +148,11 @@ function services(srv, callback) { } else { srvs.forEach(function (srv) { data.push({ - 'name': srv, - 'running': false, - 'pcpu': 0, - 'pmem': 0 + name: srv, + running: false, + startmode: '', + pcpu: 0, + pmem: 0 }); }); if (callback) { callback(data); } @@ -171,40 +174,45 @@ function services(srv, callback) { for (let i = 0; i < serviceSections.length; i++) { if (serviceSections[i].trim() !== '') { let lines = serviceSections[i].trim().split('\r\n'); - let srv = util.getValue(lines, 'Name', '=', true).toLowerCase(); + let srvName = util.getValue(lines, 'Name', '=', true).toLowerCase(); let started = util.getValue(lines, 'Started', '=', true); - if (srvs.indexOf(srv) >= 0) { + let startMode = util.getValue(lines, 'StartMode', '=', true); + if (srv === '*' || srvs.indexOf(srvName) >= 0) { data.push({ - 'name': srv, - 'running': (started === 'TRUE'), - 'pcpu': 0, - 'pmem': 0 + name: srvName, + running: (started === 'TRUE'), + startmode: startMode, + pcpu: 0, + pmem: 0 }); - dataSrv.push(srv); + dataSrv.push(srvName); } } } - let srvsMissing = srvs.filter(function (e) { - return dataSrv.indexOf(e) === -1; - }); - srvsMissing.forEach(function (srv) { - data.push({ - 'name': srv, - 'running': false, - 'pcpu': 0, - 'pmem': 0 + if (srv !== '*') { + let srvsMissing = srvs.filter(function (e) { + return dataSrv.indexOf(e) === -1; }); - }); - + srvsMissing.forEach(function (srvName) { + data.push({ + name: srvName, + running: false, + startmode: '', + pcpu: 0, + pmem: 0 + }); + }); + } if (callback) { callback(data); } resolve(data); } else { - srvs.forEach(function (srv) { + srvs.forEach(function (srvName) { data.push({ - 'name': srv, - 'running': false, - 'pcpu': 0, - 'pmem': 0 + name: srvName, + running: false, + startmode: '', + pcpu: 0, + pmem: 0 }); }); if (callback) { callback(data); }