关于java下的jps命令,进程号后显示-- process information unavailable

博客讲述了在重启Hive的hiveserver2时遇到的问题,即Hue web报错找不到10000端口。作者通过检查进程发现hiveserver2未正常显示在端口监听中,并且在不同用户下显示的jps进程状态不同。问题根源在于进程未正常结束导致进程信息显示为`--processinformationunavailable`。解决方法包括找到并删除相关ID的进程或清空`/tmp/hsperfdata_*`目录,然后重新启动服务,恢复正常运行。

问题:

今天我在本机重启 hive 的 hiveserver2 时,直接 kill 掉进程ID,随后启动后发现我的 hue 的 web 报错,说没找到 10000 端口。

排查思路

随后我试着去检查发现只看到ps -ef|grep hive下的进程,
netstat -tunlp |grep 10000下没显示到 hiveserver2 的端口,这就很奇怪了,重启几次还是没端口
后来我发现个问题,我用的是 hadoop 用户,在 hadoop 下看 jps 的进程是正常的
但我 root 后,在 jps 进程下发现 RunJar -- process information unavailable(hiveserver2 的进程)
而且你用 ps -ef|grep PID号 还找不到,也 kill 不掉

上网搜了一下发现

进程没有被正常结束导致原有进程变为-- process information unavailable这样的空值

解决方法:

找到这个 jps 下的进程ID,rm -rf 删除有问题的ID号就行
在这里插入图片描述
或者清空 /tmp/hsperfdata_*

rm -rf /tmp/hsperfdata_*

重新启动后可以看到端口号,hue的web也现已正常
在这里插入图片描述

希望对你有用,谢谢

### `jps` 命令输出中 DorisFE 进程显示-- process information unavailable”的含义 当使用 `jps` 命令查看 Java 进程时,如果输出中某个进程名称(如 `DorisFE`)后显示 `-- process information unavailable`,这通常表示无法获取该进程的详细信息,例如主类名或 JVM 参数。该现象可能由以下原因导致: - **进程已启动但无法访问其 JVM 数据** Java 进程虽然处于运行状态,但由于权限限制或 JVM 内部状态异常,`jps` 工具无法从 `/tmp/hsperfdata_<user>` 目录中读取该进程的性能数据。该目录用于存储 JVM 的共享内存文件,若其权限受限或文件被删除,会导致信息不可用 [^1]。 - **进程由非当前用户启动** `jps` 默认仅显示当前用户的 Java 进程。如果 DorisFE 是由其他用户启动的,则当前用户无法获取其详细信息。可以通过 `sudo jps` 或切换到对应用户后再执行 `jps` 命令来查看完整信息 [^1]。 - **进程处于僵尸状态或已崩溃** 如果 Java 进程虽然存在于系统进程表中,但实际 JVM 已经崩溃或未正常初始化,则 `jps` 无法获取其信息。此时需要结合系统日志、JVM 日志或 `jstack` 工具进一步排查 [^1]。 - **JVM 参数未正确设置或启动脚本配置异常** 如果 DorisFE 启动时未正确设置 `-Djava.library.path` 或未启用 JVM 的性能计数器(如 `-XX:+UsePerfData` 被禁用),也可能导致 `jps` 无法读取进程信息 [^1]。 --- ### 示例:`jps` 命令的典型输出 ```bash jps 726015 Jps 726000 DorisFE -- process information unavailable ``` 在上述输出中,`DorisFE` 表示 Apache Doris 的前端进程,而 `-- process information unavailable` 表示无法获取其 JVM 信息。 --- ### 排查建议 - 检查 `/tmp/hsperfdata_<user>` 目录是否存在且权限正确: ```bash ls -ld /tmp/hsperfdata_$(whoami) ``` - 使用 `sudo jps` 查看是否能获取更多信息: ```bash sudo jps -l ``` - 查看 DorisFE 的日志文件,确认其是否正常启动: ```bash tail -n 100 /opt/mod/apache-doris-0.15.0/fe/log/fe.log ``` - 如果怀疑 JVM 异常,可尝试使用 `jstack` 获取堆栈信息: ```bash sudo jstack 726000 ``` --- ### 总结 当 `jps` 命令显示 `-- process information unavailable` 时,表明无法访问该 Java 进程的 JVM 数据。常见原因包括权限问题、JVM 异常、启动参数配置错误等。建议结合系统权限、日志文件和调试工具进一步分析。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值