即使 Java 进程正在运行,jps 也不会返回任何输出

2022-09-02 09:12:42

我试图在Solaris盒子上调试Java进程的一些问题,但运行jps不返回任何输出。jstack给出错误“权限被拒绝”。该盒子是3个相同服务器的集群的一部分,jps和jstack在其他2台服务器上工作正常。

我发现以下论坛帖子来自具有相同问题但没有答案的人:http://forums.sun.com/thread.jspa?threadID=5422237

为了澄清java的运行bps和grep,给出了所有java过程,但jps没有给出任何东西(用“程序”和“客户端”匿名以保护有罪者):

program @ clientdelivery2 : ~/
-> bps auxww|grep java
program     3427  5.5 54.067742726649544 ?        S   Sep 25 1039:47 /usr/jdk/instances/jdk1.6.0_16/bin/amd64/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/app/client/program/tomcat/conf/logging.properties -Xmx6144m -XX:PermSize=128m -XX:MaxPermSize=512m -Djava.endorsed.dirs=/app/client/program/tomcat/endorsed -classpath :/app/client/program/tomcat/bin/bootstrap.jar -Dcatalina.base=/app/client/program/tomcat -Dcatalina.home=/app/client/program/tomcat -Djava.io.tmpdir=/app/client/program/tomcat/temp org.apache.catalina.startup.Bootstrap start
program    29915  0.1 11.915252441467896 ?        S 14:55:28  3:59 /usr/jdk/instances/jdk1.6.0_16/bin/amd64/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/app/clientclone/program/tomcat/conf/logging.properties -Xmx2g -XX:PermSize=128m -XX:MaxPermSize=512m -Dcom.sun.management.jmxremote -Djava.endorsed.dirs=/app/clientclone/program/tomcat/endorsed -classpath :/app/clientclone/program/tomcat/bin/bootstrap.jar -Dcatalina.base=/app/clientclone/program/tomcat -Dcatalina.home=/app/clientclone/program/tomcat -Djava.io.tmpdir=/app/clientclone/program/tomcat/temp org.apache.catalina.startup.Bootstrap start
program     1573  0.0  0.0 4760 1332 pts/5    S 17:05:24  0:00 grep --colour java

program @ clientdelivery2 : ~/
-> jps

program @ clientdelivery2 : ~/
->

我四处打听,从这里 http://forums.oracle.com/forums/message.jspa?messageID=5408592 我的问题是:

12460/2: mkdir("/tmp/hsperfdata_program", 0755) Err#13 EACCES [ALL]

这意味着jps被拒绝访问psperfdata目录。

有没有人遇到过这个问题,并知道如何解决它?


答案 1

事实证明,由于挂载文件系统的一些问题,用户无权访问 /tmp。这会导致hsperfdata_中的文件永远不会被写入,即使用户有权访问 /tmp/hsperfdata_ 文件夹本身。


答案 2

tldr:为我工作(出于其他答案中引用的原因)sudo jps