| 5.18.12 |
2023-08-05 |
diff --git a/docs/index.html b/docs/index.html
index 7e10175..acb4285 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -170,7 +170,7 @@
systeminformation
- New Version: 5.18.12
+ New Version: 5.18.13
diff --git a/lib/memory.js b/lib/memory.js
index ba09b0b..54dd64c 100644
--- a/lib/memory.js
+++ b/lib/memory.js
@@ -166,60 +166,70 @@ function mem(callback) {
};
if (_linux) {
- fs.readFile('/proc/meminfo', function (error, stdout) {
- if (!error) {
- const lines = stdout.toString().split('\n');
- result.total = parseInt(util.getValue(lines, 'memtotal'), 10);
- result.total = result.total ? result.total * 1024 : os.totalmem();
- result.free = parseInt(util.getValue(lines, 'memfree'), 10);
- result.free = result.free ? result.free * 1024 : os.freemem();
- result.used = result.total - result.free;
+ try {
+ fs.readFile('/proc/meminfo', function (error, stdout) {
+ if (!error) {
+ const lines = stdout.toString().split('\n');
+ result.total = parseInt(util.getValue(lines, 'memtotal'), 10);
+ result.total = result.total ? result.total * 1024 : os.totalmem();
+ result.free = parseInt(util.getValue(lines, 'memfree'), 10);
+ result.free = result.free ? result.free * 1024 : os.freemem();
+ result.used = result.total - result.free;
- result.buffers = parseInt(util.getValue(lines, 'buffers'), 10);
- result.buffers = result.buffers ? result.buffers * 1024 : 0;
- result.cached = parseInt(util.getValue(lines, 'cached'), 10);
- result.cached = result.cached ? result.cached * 1024 : 0;
- result.slab = parseInt(util.getValue(lines, 'slab'), 10);
- result.slab = result.slab ? result.slab * 1024 : 0;
- result.buffcache = result.buffers + result.cached + result.slab;
+ result.buffers = parseInt(util.getValue(lines, 'buffers'), 10);
+ result.buffers = result.buffers ? result.buffers * 1024 : 0;
+ result.cached = parseInt(util.getValue(lines, 'cached'), 10);
+ result.cached = result.cached ? result.cached * 1024 : 0;
+ result.slab = parseInt(util.getValue(lines, 'slab'), 10);
+ result.slab = result.slab ? result.slab * 1024 : 0;
+ result.buffcache = result.buffers + result.cached + result.slab;
- let available = parseInt(util.getValue(lines, 'memavailable'), 10);
- result.available = available ? available * 1024 : result.free + result.buffcache;
- result.active = result.total - result.available;
+ let available = parseInt(util.getValue(lines, 'memavailable'), 10);
+ result.available = available ? available * 1024 : result.free + result.buffcache;
+ result.active = result.total - result.available;
- result.swaptotal = parseInt(util.getValue(lines, 'swaptotal'), 10);
- result.swaptotal = result.swaptotal ? result.swaptotal * 1024 : 0;
- result.swapfree = parseInt(util.getValue(lines, 'swapfree'), 10);
- result.swapfree = result.swapfree ? result.swapfree * 1024 : 0;
- result.swapused = result.swaptotal - result.swapfree;
- }
+ result.swaptotal = parseInt(util.getValue(lines, 'swaptotal'), 10);
+ result.swaptotal = result.swaptotal ? result.swaptotal * 1024 : 0;
+ result.swapfree = parseInt(util.getValue(lines, 'swapfree'), 10);
+ result.swapfree = result.swapfree ? result.swapfree * 1024 : 0;
+ result.swapused = result.swaptotal - result.swapfree;
+ }
+ if (callback) { callback(result); }
+ resolve(result);
+ });
+ } catch (e) {
if (callback) { callback(result); }
resolve(result);
- });
+ }
}
if (_freebsd || _openbsd || _netbsd) {
- exec('/sbin/sysctl hw.realmem hw.physmem vm.stats.vm.v_page_count vm.stats.vm.v_wire_count vm.stats.vm.v_active_count vm.stats.vm.v_inactive_count vm.stats.vm.v_cache_count vm.stats.vm.v_free_count vm.stats.vm.v_page_size', function (error, stdout) {
- if (!error) {
- let lines = stdout.toString().split('\n');
- const pagesize = parseInt(util.getValue(lines, 'vm.stats.vm.v_page_size'), 10);
- const inactive = parseInt(util.getValue(lines, 'vm.stats.vm.v_inactive_count'), 10) * pagesize;
- const cache = parseInt(util.getValue(lines, 'vm.stats.vm.v_cache_count'), 10) * pagesize;
+ try {
+ exec('/sbin/sysctl hw.realmem hw.physmem vm.stats.vm.v_page_count vm.stats.vm.v_wire_count vm.stats.vm.v_active_count vm.stats.vm.v_inactive_count vm.stats.vm.v_cache_count vm.stats.vm.v_free_count vm.stats.vm.v_page_size', function (error, stdout) {
+ if (!error) {
+ let lines = stdout.toString().split('\n');
+ const pagesize = parseInt(util.getValue(lines, 'vm.stats.vm.v_page_size'), 10);
+ const inactive = parseInt(util.getValue(lines, 'vm.stats.vm.v_inactive_count'), 10) * pagesize;
+ const cache = parseInt(util.getValue(lines, 'vm.stats.vm.v_cache_count'), 10) * pagesize;
- result.total = parseInt(util.getValue(lines, 'hw.realmem'), 10);
- if (isNaN(result.total)) { result.total = parseInt(util.getValue(lines, 'hw.physmem'), 10); }
- result.free = parseInt(util.getValue(lines, 'vm.stats.vm.v_free_count'), 10) * pagesize;
- result.buffcache = inactive + cache;
- result.available = result.buffcache + result.free;
- result.active = result.total - result.free - result.buffcache;
+ result.total = parseInt(util.getValue(lines, 'hw.realmem'), 10);
+ if (isNaN(result.total)) { result.total = parseInt(util.getValue(lines, 'hw.physmem'), 10); }
+ result.free = parseInt(util.getValue(lines, 'vm.stats.vm.v_free_count'), 10) * pagesize;
+ result.buffcache = inactive + cache;
+ result.available = result.buffcache + result.free;
+ result.active = result.total - result.free - result.buffcache;
- result.swaptotal = 0;
- result.swapfree = 0;
- result.swapused = 0;
+ result.swaptotal = 0;
+ result.swapfree = 0;
+ result.swapused = 0;
- }
+ }
+ if (callback) { callback(result); }
+ resolve(result);
+ });
+ } catch (e) {
if (callback) { callback(result); }
resolve(result);
- });
+ }
}
if (_sunos) {
if (callback) { callback(result); }
@@ -233,31 +243,36 @@ function mem(callback) {
} catch (e) {
util.noop();
}
- exec('vm_stat 2>/dev/null | grep "Pages active"', function (error, stdout) {
- if (!error) {
- let lines = stdout.toString().split('\n');
-
- result.active = parseInt(lines[0].split(':')[1], 10) * pageSize;
- result.buffcache = result.used - result.active;
- result.available = result.free + result.buffcache;
- }
- exec('sysctl -n vm.swapusage 2>/dev/null', function (error, stdout) {
+ try {
+ exec('vm_stat 2>/dev/null | grep "Pages active"', function (error, stdout) {
if (!error) {
let lines = stdout.toString().split('\n');
- if (lines.length > 0) {
- let firstline = lines[0].replace(/,/g, '.').replace(/M/g, '');
- let lineArray = firstline.trim().split(' ');
- lineArray.forEach(line => {
- if (line.toLowerCase().indexOf('total') !== -1) { result.swaptotal = parseFloat(line.split('=')[1].trim()) * 1024 * 1024; }
- if (line.toLowerCase().indexOf('used') !== -1) { result.swapused = parseFloat(line.split('=')[1].trim()) * 1024 * 1024; }
- if (line.toLowerCase().indexOf('free') !== -1) { result.swapfree = parseFloat(line.split('=')[1].trim()) * 1024 * 1024; }
- });
- }
+
+ result.active = parseInt(lines[0].split(':')[1], 10) * pageSize;
+ result.buffcache = result.used - result.active;
+ result.available = result.free + result.buffcache;
}
- if (callback) { callback(result); }
- resolve(result);
+ exec('sysctl -n vm.swapusage 2>/dev/null', function (error, stdout) {
+ if (!error) {
+ let lines = stdout.toString().split('\n');
+ if (lines.length > 0) {
+ let firstline = lines[0].replace(/,/g, '.').replace(/M/g, '');
+ let lineArray = firstline.trim().split(' ');
+ lineArray.forEach(line => {
+ if (line.toLowerCase().indexOf('total') !== -1) { result.swaptotal = parseFloat(line.split('=')[1].trim()) * 1024 * 1024; }
+ if (line.toLowerCase().indexOf('used') !== -1) { result.swapused = parseFloat(line.split('=')[1].trim()) * 1024 * 1024; }
+ if (line.toLowerCase().indexOf('free') !== -1) { result.swapfree = parseFloat(line.split('=')[1].trim()) * 1024 * 1024; }
+ });
+ }
+ }
+ if (callback) { callback(result); }
+ resolve(result);
+ });
});
- });
+ } catch (e) {
+ if (callback) { callback(result); }
+ resolve(result);
+ }
}
if (_windows) {
let swaptotal = 0;
diff --git a/lib/system.js b/lib/system.js
index b546548..5c2a6b0 100644
--- a/lib/system.js
+++ b/lib/system.js
@@ -399,10 +399,11 @@ function bios(callback) {
}
if (_windows) {
try {
- util.powerShell('Get-CimInstance Win32_bios | select Description,Version,Manufacturer,@{n="ReleaseDate";e={$_.ReleaseDate.ToString("yyyy-MM-dd")}},BuildNumber,SerialNumber | fl').then((stdout, error) => {
+ util.powerShell('Get-CimInstance Win32_bios | select Description,Version,Manufacturer,@{n="ReleaseDate";e={$_.ReleaseDate.ToString("yyyy-MM-dd")}},BuildNumber,SerialNumber,SMBIOSBIOSVersion | fl').then((stdout, error) => {
if (!error) {
let lines = stdout.toString().split('\r\n');
const description = util.getValue(lines, 'description', ':');
+ const version = util.getValue(lines, 'SMBIOSBIOSVersion', ':');
if (description.indexOf(' Version ') !== -1) {
// ... Phoenix ROM BIOS PLUS Version 1.10 A04
result.vendor = description.split(' Version ')[0].trim();
@@ -413,7 +414,7 @@ function bios(callback) {
result.version = description.split(' Ver: ')[1].trim();
} else {
result.vendor = util.getValue(lines, 'manufacturer', ':');
- result.version = util.getValue(lines, 'version', ':');
+ result.version = version || util.getValue(lines, 'version', ':');
}
result.releaseDate = util.getValue(lines, 'releasedate', ':');
result.revision = util.getValue(lines, 'buildnumber', ':');