FIX #61 fixed issues with dmesg being rotated
This commit is contained in:
@@ -80,11 +80,33 @@ public class FreeBSD extends OS {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
b.close();
|
b.close();
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
catch (Exception e) {
|
catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
if (ret.haveData() == false) {
|
||||||
|
Log.getInstance(null).debug("OS::FreeBSD::getCPU failed to get CPU from dmesg, using partia sysctl");
|
||||||
|
ret.setModel("0");
|
||||||
|
ret.setFamily("0");
|
||||||
|
try {
|
||||||
|
Runtime run = Runtime.getRuntime();
|
||||||
|
Process sysctl = run.exec("sysctl -n hw.model");
|
||||||
|
BufferedReader buf = new BufferedReader(new InputStreamReader(sysctl.getInputStream()));
|
||||||
|
String name = "";
|
||||||
|
|
||||||
|
name = buf.readLine();
|
||||||
|
buf.close();
|
||||||
|
if (name == "") {
|
||||||
|
ret.setName("0");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ret.setName(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException e) {
|
||||||
|
Log.getInstance(null).debug("OS::FreeBSD::getCPU exception " + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,23 +114,20 @@ public class FreeBSD extends OS {
|
|||||||
public int getMemory() {
|
public int getMemory() {
|
||||||
try {
|
try {
|
||||||
Runtime r = Runtime.getRuntime();
|
Runtime r = Runtime.getRuntime();
|
||||||
Process p = r.exec("dmesg");
|
Process p = r.exec("sysctl -n hw.usermem");
|
||||||
BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream()));
|
BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||||||
String line = "";
|
String line = "";
|
||||||
|
|
||||||
while ((line = b.readLine()) != null) {
|
line = b.readLine();
|
||||||
if (line.startsWith("avail memory")) {
|
b.close();
|
||||||
String buf[] = line.split(" ");
|
if (line.isEmpty()) {
|
||||||
if (buf.length > 4) {
|
return 0;
|
||||||
Long mem_byte = Long.parseLong(buf[3].trim());
|
}
|
||||||
|
Long mem_byte = Long.parseLong(line.trim());
|
||||||
return (int) (mem_byte / Long.valueOf(1024));
|
return (int) (mem_byte / Long.valueOf(1024));
|
||||||
}
|
}
|
||||||
}
|
catch (IOException e) {
|
||||||
}
|
Log.getInstance(null).debug("OS::FreeBSD::getMemory exception " + e);
|
||||||
b.close();
|
|
||||||
}
|
|
||||||
catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user