问题
I've started jprofiler on my production server and after some profiling I've killed it (kill -9 ).
Now I'm trying to start it again and receive only "No unprofiled JVMs found." message, but jps command says that my application is running (and I can see that it works by myself actually).
Probably jprofiler stores info about which jvms it profiles at the moment in some file and kill command prevented it from updating this file. So how can I clean it manually?
p.s. I've tried to delete and then unpack jprofile again, still not working.
回答1:
JProfiler finds JVMs via the "Attach API" that is part of the JDK. Have a look at the $TMP/hsperfdata_$USER
directory, which is created by the hot spot JVM. It should contain PID files for all running JVMs. If not, delete the directory and restart all JVMs.
回答2:
look at this QA, it is not possible to unload a Jprofiler agent on a java process unless you kill the jp.
I'm not sure if you can really kill the agent.
"No unprofiled JVMs found." message will occur when you start Jprofiler twice. Try to restart the monitored java application.
来源:https://stackoverflow.com/questions/9160368/jprofiler-cant-find-jvm