SIGAR或OSHI或任何其他类似的API是否提供开箱即用的功能,最重要的是,是否提供了通用功能来提取OS进程信息?
我的要求是获取特定程序的所有OS进程的PID和一些其他详细信息,例如Chrome。
如下所示,我编写了自己的实现,但我将不得不为Unix,Mac,Solaris等提供一些不同的方法,因为以下方法特定于Windows。为了保持通用性,我想知道SGIAR / OSHI中是否有任何OOTB方法。
a_hex_str = ':'.join('%02x' % b for b in a_bytes)
答案 0 :(得分:2)
我之前找不到它,因为SIGAR文档无法公开获得。我在此链接上找到了它们。其中包含文档和API参考。
顺便说一下方法
public long[] find(java.lang.String query) throws SigarException
类中的ProcessFinder
可用于获取操作系统详细信息。
SIGAR API参考可以从https://sourceforge.net/projects/sigar/下载
答案 1 :(得分:2)
OSHI的OSProcess
类为Windows,macOS,Linux,Solaris和FreeBSD提供了开箱即用的功能。
SystemInfo si = new SystemInfo();
OperatingSystem os = si.getOperatingSystem();
OSProcess[] procs = os.getProcesses(0, null);
for (OSProcess p : procs) {
if (p.getName().contains("Chrome")) {
// do stuff with p
}
}
您可能还会发现p.getParentProcessPid()
和os.getChildProcesses(pid)
方法对于识别与父Chrome进程关联的其他进程(不包括名称“ Chrome”)很有用。