/** @return The index of the Process, typically starting at 0 */ public String listProcesses() { StringBuffer procNames = new StringBuffer(); for (int i = 0; i < ids.length; i++) { try { int id = (int) ((ProcessInfo) procinfo.get(i)).getPID(i); procNames .append( id + " " + ((ProcessInfo) procinfo.get(i)).getUser(id) + " " + ((ProcessInfo) procinfo.get(i)).getStartTime(id) + " " + Sigar.formatSize((long) ((ProcessInfo) procinfo.get(i)).getMemoryUsage(id)) + " " + Sigar.formatSize((long) ((ProcessInfo) procinfo.get(i)).getSwapDimension(id)) + " " + ((ProcessInfo) procinfo.get(i)).getState(id) + " " + ((ProcessInfo) procinfo.get(i)).getPriority(id) + " " + ((ProcessInfo) procinfo.get(i)).getExecutionTime(id) + " " + ((ProcessInfo) procinfo.get(i)).getCommand(id)) .append("\n"); } catch (SigarException ex) { Logger.getLogger(ProcessInfojmx.class.getName()).log(Level.SEVERE, null, ex); } } return procNames.toString(); }
public static FileDeviceSystem getFileDeviceEntity(FileSystem fs) throws SigarException { long used, avail, total, pct; FileDeviceSystem fileDeviceSystem = new FileDeviceSystem(); try { FileSystemUsage usage; if (fs instanceof NfsFileSystem) { NfsFileSystem nfs = (NfsFileSystem) fs; if (!nfs.ping()) { log.error(nfs.getUnreachableMessage()); return null; } } usage = sigar.getFileSystemUsage(fs.getDirName()); used = usage.getTotal() - usage.getFree(); avail = usage.getAvail(); total = usage.getTotal(); pct = (long) (usage.getUsePercent() * 100); } catch (SigarException e) { log.warn("通过sigar的API获取文件系统信息时出错:" + e.toString()); used = avail = total = pct = 0; } String usePct; if (pct == 0) { usePct = "-"; } else { usePct = pct + "%"; } fileDeviceSystem.setDeviceName(fs.getDevName()); fileDeviceSystem.setSize(Sigar.formatSize(total * 1024)); fileDeviceSystem.setAvail(Sigar.formatSize(avail * 1024)); fileDeviceSystem.setUsed(Sigar.formatSize(used * 1024)); fileDeviceSystem.setUsePercent(usePct); fileDeviceSystem.setMountedOn(fs.getDirName()); fileDeviceSystem.setTypeName(fs.getTypeName()); fileDeviceSystem.setSysTypeName(fs.getSysTypeName()); return fileDeviceSystem; }