1

我需要从 LINUX 中的 java 代码中获取特定进程的 CPU 使用率。

我试过了

进程 p = Runtime.getRuntime().exec("top");

或者

进程 p = Runtime.getRuntime().exec("top | grep java");

但它没有返回任何东西。其实我想得到几个JBOSS节点的CPU使用率。如果我可以在 java 代码中“置顶”或其他内容,那么我可以处理输出并找到我想要的详细信息。

但如果我尝试

进程 p = Runtime.getRuntime().exec("ls -l");

它正确地返回了输出。

我可以这样做还是有其他选择可以做到这一点?

谢谢。

4

2 回答 2

2

如果您知道进程 ID,并且您是启动它们的用户(或者您有足够的权限),您总是可以通过读取伪文件 /proc/ PID /stat 来获取详细信息。在回答这个问题时,有一个很好的描述如何做到这一点:如何从 C 中通过 PID 在 Linux 中计算进程的 CPU 使用率?.

于 2012-10-26T16:46:51.857 回答
0

我相信这应该有效......

Runtime.getRuntime().exec("ps -ao pcpu,args | grep java");

或者top -b | grep java如果你坚持使用top

于 2012-10-26T16:41:42.277 回答