运行jps命令报错process information unavailable

本文介绍了解决Linux下jps命令出现--processinformationunavailable异常的方法。通常由于进程未正常结束导致,可通过删除/tmp/hsperfdata_*目录解决。文章记录了一个具体案例,包括问题现象、原因分析及解决步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:

有一台storm的supervisor机器,本来jps命令用得一直都正常,过了几分钟再运行jps查看服务进程,发现报下面的错误:

[root@host12 ~]# jps
20368 -- process information unavailable
20517 -- process information unavailable

原因分析:

根据文章:https://www.cnblogs.com/freeweb/p/5748424.html 的描述,一般原因和解决方法如下:

在Linux下执行 jps 是快速查看Java程序进程的命令,一般情况下hadoop,hbase,storm等进程都是通过jps查看,有些时候因为进程没有被正常结束,比如资源占用过大时挂掉或者没有结束进程就直接重启计算机,会导致原有进程变为-- process information unavailable这样的空值。有时候不用管它,一段时间后会自动消失,如果一直不消失的情况下,可以使用如下方法清理:
进入/tmp目录可以看到有很多以hsperfdata_{用户名}这样的目录,比如:hsperfdata_hbase,hsperfdata_kafka,hsperfdataroot这样的目录,是因为进程虽然在内存中关闭了,但是Linux还会在/tmp下寻找这些临时文件,而此时临时文件并没有没正常删除。这时候直接执行 rm -rf hsperfdata* 删除这些目录,然后再次执行 jps 查看,以上那些进程就不存在了。

总的来说直接执行 rm -rf /tmp/hsperfdata_* 可以快速清除那些残留进程。如果有很多正常运行的进程时,其中夹杂部分残留进程,这个时候不建议全部删除上面的目录,这时候要根据目录和进程的对应关系分析出残留的单个目录来删除无用的进程即可

结合上文的描述,自己的这台问题服务器上的supervisor正好在报错,supervisor通过storm.yaml里面配置的nimbus的hostname连不上nimbus,然后supervisor进程就挂掉了。应该是这个问题引起的jps异常。

解决过程:

按照上文的指导,在/tmp下面找到了一个hsperfdata_root目录。但是这台机器上也运行这kafka程序,但是没有类似hsperfdata_kafka这样的目录:

[root@host12 ~]# cd /tmp/
[root@host12 tmp]# ll
total 10112
drwxrwxrwx 2 root    root      4096 Aug 14 14:41 hsperfdata_root    #/tmp目录下面就找到这个目录

[root@host12 tmp]# cd hsperfdata_root/
[root@host12 hsperfdata_root]# ll
total 64
-rwxrwxrwx 1 root root 32768 Aug 14 15:11 20368     #这两个进程号就是报错里面显示的两个进程号
-rwxrwxrwx 1 root root 32768 Aug 14 15:12 20517

等了一会儿,jps运行也没有自行恢复,只能手动删除文件试试了:

[root@host12 hsperfdata_root]# cd ..
[root@host12 tmp]# rm -rf  hsperfdata_root    

然后jps命令可以运行了,但是kafka的进程在这里也看不到了。查看了kafka,发现kafka本身进程还没有挂掉,端口什么的都是正常的,就是在jps里面看不到了:

[root@host12 tmp]# jps
3852 Jps     
[root@host12 tmp]#

然后把supervisor和kafka都重启了一遍,显示就正常了

[root@host12 ~]# jps
23269 Jps
4391 Supervisor
25241 ConnectDistributed
23610 QuorumPeerMain
24492 Kafka
[root@host12 ~]#

不过运行正常之后,看了一下/tmp目录,也只存在hsperfdata_root目录,上面jps的进程号都在里面:

[root@host12 tmp]# ll
total 10124
drwxr-x--- 2 root    root      4096 Aug 15 10:19 hsperfdata_root
[root@host12 tmp]#  cd hsperfdata_root
[root@host12 hsperfdata_root]# ll
total 128
-rw------- 1 root root 32768 Aug 15 10:49 23610
-rw------- 1 root root 32768 Aug 15 10:49 24492
-rw------- 1 root root 32768 Aug 15 10:49 25241
-rw------- 1 root root 32768 Aug 15 10:49 4391
[root@host12 hsperfdata_root]#

解决问题参考文档:https://www.cnblogs.com/freeweb/p/5748424.html

转载于:https://blog.51cto.com/10950710/2160128

<think>嗯,用户遇到了jps命令显示process information unavailable的问题,需要帮助解决。首先,我需要回忆一下关于这个问题的知识,并结合提供的引用内容来整理解决方案。 根据引用内容,这个问题通常出现在Java进程没有正常结束时,比如资源占用过高崩溃或者服务器被直接重启,导致残留的临时文件。用户提供的引用[3]提到,这种情况可能过段时间自动消失,但手动清理方法是删除/tmp下的hsperfdata_*目录。引用[1]、[2]、[4]、[5]也提到了类似的情况,可能需要检查进程状态、清理临时文件或重启服务。 首先,我应该列出可能的解决方案步骤,确保覆盖所有可能的原因。步骤可能包括检查进程状态、清理临时文件、重启服务、调整系统配置等。此外,需要注意权限问题,比如是否有权限删除临时文件或终止进程。 然后,要验证每个步骤的正确性。例如,使用ps命令确认进程是否真的存在,避免误删。删除临时文件前备份可能也是必要的,但引用中未提到,所以可能不需要。另外,需要提醒用户谨慎使用kill -9,以免影响其他服务。 可能用户的环境是Hadoop集群,因此还需要考虑分布式环境下各个节点的处理,如引用[2]中的xcall命令可能用于多节点执行。但用户当前的问题可能集中在单个节点,所以步骤应适用于单节点情况。 还需要考虑是否有其他原因导致,比如磁盘空间不足、文件权限错误等,但引用中未提及,可能不需要包含在解决方案中,除非常见。不过根据现有资料,问题主要集中在残留的hsperfdata文件。 最后,总结步骤,确保用户能按顺序操作,并给出预防措施,如正常关闭服务。同时,相关问题可以引导用户了解更深入的内容,比如Hadoop进程管理或JVM监控原理。</think>### JPS命令显示"process information unavailable"的解决方案 该问题通常由Java进程异常终止导致残留临时文件引起,以下是具体解决步骤: 1. **检查实际进程状态** ```bash ps -ef | grep 11904 # 确认该PID是否真实存在 ``` 若进程已终止但仍显示残留信息,说明存在未清理的临时文件[^3] 2. **清理临时文件** ```bash sudo rm -rf /tmp/hsperfdata_*/11904 # 删除特定PID残留文件 sudo rm -rf /tmp/hsperfdata_* # 清除所有无效临时文件 ``` *注意:操作前建议备份/tmp目录[^4]* 3. **验证进程状态** ```bash jps -l # 检查是否仍显示异常进程 ls /tmp/hsperfdata_* # 确认临时文件目录是否清理 ``` 4. **强制终止进程(可选)** ```bash sudo kill -9 11904 # 当确认是僵尸进程时使用 ``` 5. **重启相关服务** ```bash hadoop-daemon.sh stop namenode # 示例停止Hadoop服务 hadoop-daemon.sh start namenode # 重新启动服务 ``` **预防措施:** - 使用`stop-all.sh`等脚本规范关闭服务[^5] - 避免直接重启服务器强制结束进程 - 定期检查/tmp目录空间使用率
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值