jps没有显示Tomcat进程
我在Ubuntu 10.10上运行Tomcat 6.0.31并使用tge Sun JDK(java-6-sun)。 虽然tomcat正在运行,但是当我运行jps
(Java虚拟机进程状态工具)时,它的进程并没有显示出来。 我看到的唯一输出是jps进程本身的pid。 为什么Tomcat进程不显示?
您可能正在运行Bug 7009828 :
在Java 6 Update 23和Java 6 Update 24中,Java在决定将jps
, jconsole
和jvisulavm
所需的一些文件jvisulavm
以检测本地运行的JVM时,会考虑java.io.tmpdir
属性。 这意味着将具有此系统属性定义为默认值( /tmp
)以外的其他JVM实例对这些工具不可见。
特别是Tomcat安装默认将此属性设置为其安装temp
文件夹。
所以: 要么升级到Java 6 Update 25或更高版本(修复了bug),要么使用-J-Djava.io.tmpdir=/path-to-tomcat-installation/temp
启动jps
。
可能是由于/tmp/hsperfdata_$USER
目录被系统上运行的cron作业删除了吗? 有关更多信息,请参阅http://www.semicomplete.com/blog/geekery/jps-shows-nothing-useful.html 。
检查你的vm args是否存在-XX:-UsePerfData
。
如果是,请将其删除,然后重新启动jvm
检查/ tmp / hsperfdata_ *目录的所有权,如下所示:
ls -ld /tmp/hsperfdata_*
每个目录都将由拥有该java进程的用户拥有。 如果您感兴趣的流程不属于您,则无法访问该数据。 但是,如果以root身份运行jstatd,则它将能够访问所有数据。
sudo jstatd