jps命令看不到相关java进程

 

 

 

 

jps命令看不到相关java进程

 

 

 

现象

最近磁盘进展,把临时目录/tmp给全删了,结果发现jps的输出为空,找不到正在运行的jvm进程。

但是新建的进程没有问题,能够正常查看:


[root@node-master ~]# ps -e|grep java
 32840 ?        00:09:14 java
 34877 ?        00:12:51 java
 35385 ?        00:07:10 java
 35758 ?        00:52:09 java
 93574 ?        01:08:14 java
109187 pts/0    00:18:33 java
114016 ?        00:00:42 java

[root@node-master ~]# jps                #  看不到想要的java进程
114016 LivyServer
81220 Jps

114016是新建的,使用ps查看还有很多其他java进程,但是无法显示。

 

 

 

原因

jps命令会使用   /tmp/hsperfdata_{用户名}目录 (如果是window, 则目录为 %temp%\hsperfdata_{用户名}显示java进程的详细信息,由于我删除了老的tmp目录,所以已经创建的java 进程就没有这些信息,所以就没法展示了。

 

 

 

解决办法

1. 把/tmp/hsperfdata_{用户名} 对应的目录删掉即可,再次执行jps。

2. 如果还不行, 检查是否有该目录权限, 如果这个文件夹的所有者和文件所属组权限与运行java程序的用户权限不一致,这样启动时用户就没有权限写这个文件夹. ( linux终端下 sudo chmod 755 hsperfdata_{用户名})

 

 

 

 

 

 


版权声明:本文为guyue35原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。