读取/proc/{pid}/stat
/**
* Get CPU stat of specified process.
* @param pid Process ID
* @return null may be returned if some unexpected things happens
*/
public static long[] getProcCpuStat(int pid) {
String file = String.format(Locale.US, "/proc/%d/stat", pid);
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
String line = null;
while ((line = br.readLine()) != null) {
String[] fields = line.split("\\s+");
if (fields.length >= 15) {
long[] stat = new long[]{Long.parseLong(fields[13])/**utime**/,
Long.parseLong(fields[14]) /**stime***/};
return stat;
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(br);
}
return null;
}
实例
root@efb27a24edbb:/opt# cat /proc/464/stat
464 (pmwebd) S 1 1 1 34816 1 4210944 409 0 29 0 0 2 0 0 20 0 1 0 213582 100552704 1470 18446744073709551615 1 1 0 0 0 0 0 1 16390 0 0 0 17 5 0 0 2 0 0 0 0 0 0 0 0 0 0
doc