我已经在我的生产服务器上启动了jprofiler,经过一些分析我已经杀了它(kill -9)。
现在我正在尝试再次启动它,并且只收到“未找到未经过发现的JVM”。信息, 但jps命令说我的应用程序正在运行(我可以看到它实际上是自己工作的)。
可能jprofiler会在某个文件中存储有关它当前配置的jvms的信息 kill命令阻止它更新此文件。那么如何手动清洁呢?
P.S。我试图删除然后再解压缩jprofile,仍然无法正常工作。
答案 0 :(得分:9)
JProfiler通过作为JDK一部分的“Attach API”找到JVM。查看由热点JVM创建的$TMP/hsperfdata_$USER
目录。它应该包含所有正在运行的JVM的PID文件。如果没有,请删除该目录并重新启动所有JVM。
答案 1 :(得分:1)
look at this QA,除非你杀掉jp,否则无法在java进程上卸载Jprofiler代理。
我不确定你是否真的可以杀死这个特工。
"未找到未经过发现的JVM。"启动Jprofiler两次时将出现消息。 尝试重新启动受监控的Java应用程序。
答案 2 :(得分:0)
在WLS服务器上,这通常意味着您重新启动了服务器,并且有两个JVM正在运行。 我运行此命令来启动jpenable: ./ jpenable --gui --port = 8888 --pid = $ WLS_ID 并得到这个错误: 未取消配置PID 14690的JVM。
杀死其中一个: 杀死-9 14690
使用以下输出重新运行上面的jpenable启动命令: 连接到weblogic.Server [18037] ... 现在,您可以使用JProfiler GUI在端口8888上进行连接
18037 是无法与JProfiler客户端连接的JVM的PID。