我需要从LINUX中的java代码中获取特定进程的CPU使用率。
我试过
进程p = Runtime.getRuntime()。exec(“top”);
或
进程p = Runtime.getRuntime()。exec(“top | grep java”);
但它没有回归任何东西。实际上我想获得几个JBOSS节点的CPU使用率。如果我可以“顶部”或java代码内部的东西,那么我可以处理out out找到我想要的细节。
但如果我尝试
进程p = Runtime.getRuntime()。exec(“ls -l”);
它正确地返回了输出。
我可以这样做,还是有其他选择呢?
感谢。
答案 0 :(得分:2)
如果你知道进程ID,并且你是启动它们的用户(或者你有足够的权限),你可以通过读取伪文件/ proc / PID 来获取详细信息。 / STAT。在回答这个问题时,有一个很好的描述:How to calculate the CPU usage of a process by PID in Linux from C?。
答案 1 :(得分:0)
这应该可行我相信......
Runtime.getRuntime().exec("ps -ao pcpu,args | grep java");
如果您坚持使用top -b | grep java
,请或top