【问题标题】:get Process ID via JMX [duplicate]通过 JMX 获取进程 ID [重复]
【发布时间】:2014-06-27 04:03:02
【问题描述】:

我正在添加以下 JVM 参数以通过 JMX 连接应用程序。 通过 jconsole over JMX 连接应用程序后,是否有一个菜单显示正在运行的应用程序 PID?

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=5592 
-Dcom.sun.management.jmxremote.authenticate=false  
-Dcom.sun.management.jmxremote.ssl=false

Linux Redhat 6.2 java JDK 1.6

【问题讨论】:

  • 我不这么认为,因为没有关于 jconsole 等 JMX 工具的讨论。我找到了解决办法。
  • 任何 JMX 工具如 jconsole 或 VisualVM 都可以获取这个 MXBean。我建议你使用 VisualVM。

标签: java linux jmx


【解决方案1】:

我已经跟踪了 java.lang->RunTime->Name 我认为名称属性的格式以 PID 开头 所以运行应用的IP是5741

【讨论】:

  • 您还可以从该属性中找出运行 JVM 的主机的名称,恕我直言,这是一个非常优雅的解决方案。
【解决方案2】:

你可以用jps

$ jps -lm
3457 com.intellij.idea.Main
3524 org.jetbrains.idea.maven.server.RemoteMavenServer
12059 org.netbeans.Main --userdir /home/peter/.visualvm/7u14 --cachedir /home/peter/.cache/visualvm/7u14 --branding visualvm
12162 sun.tools.jps.Jps -lm

VisualVM 是 jconsole 的替代品。

【讨论】:

  • 我知道 JPS 但我没有使用“-lm”选项。这真的很棒。我学到了另一种比 jmx 工具更容易的方法。
  • @mmc18 我通常使用jps -lvm,但输出太长而无法输入答案。 ;)
  • 如果有多个运行相同的应用程序怎么样。对于这种情况,“lvm”直接寻址正在运行的应用程序
  • @mmc18 你可以在命令行中添加一个属性,这样你就可以区分另一个。
猜你喜欢
  • 1970-01-01
  • 2012-12-27
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 2014-09-29
  • 1970-01-01
相关资源
最近更新 更多