Linux下为正常关闭java服务导致-process information unavailable

在Linux下查看测试tomcat时,进程出现process information unavailable错误,/tmp目录存在大量临时文件,直接使用可能使容器僵死。可使用tmpwatch命令删除暂存文件,设置超期时间以小时计,还介绍了该命令的参数及删除/tmp目录超一天未用文件的实例。

Linux下为正常关闭java服务导致-process information unavailable(笔录)

今天查看测试tomcat时,无意间发现进程出现:process information unavailable错误,

[root@mysql-clone tmp]# jps
2592 Jps
9027 -- process information unavailable
2287 Bootstrap
2239 -- process information unavailable

查看/tmp目录发现存在大量的临时文件,直接使用rm rf /tmp/*可能会导致其它正在运行的容器僵死,为防止这一悲剧发生,我们可以使用tmpwatch 命令
如果每有可以使用一下方式安装:

yum -y install tmpwatch

tmpwatch命令用于删除暂存文件。
设置文件超期时间,单位以小时计算,删除不必要的暂存文件

tmpwatch [-afqv][--test][超期时间][目录...]
  • -a或–all  删除任何类型的文件。
  • -f或–force  强制删除文件或目录,其效果类似rm指令的"-f"参数。
  • -q或–quiet  不显示指令执行过程。
  • -v或–verbose  详细显示指令执行过程。
  • -test  仅作测试,并不真的删除文件或目录。
    实例: 删除/tmp目录中超过一天(24小时)未使用的文件
 tmpwatch 24 /tmp/

执行效果如下
未删除之前:
在这里插入图片描述
删除超过1天未使用的文件后:
在这里插入图片描述

当在 `hadoop102` 上执行 `kill -9 50059` 后,`jps` 仍然显示 `50059 -- process information unavailable`,这表明该 Java 进程在尝试终止后依然未能从 JVM 的进程信息缓存中清除。这种现象通常与以下几种情况有关: 1. **进程已终止但 JVM 缓存未清理** Java 的 `jps` 工具依赖于 `/tmp/hsperfdata_<user>` 目录下的性能数据文件来获取进程信息。即使进程已被 `kill -9` 强制终止,这些文件可能仍未被清理,导致 `jps` 显示为 `-- process information unavailable`[^1]。 2. **不同用户权限问题导致的进程不可见** 如果 `50059` 进程是由其他用户(如 `hadoop` 用户)启动的,而当前使用的是 `root` 用户执行 `jps`,则可能出现进程信息不可用的情况。这是因为 `jps` 只能查看当前用户权限下的 JVM 进程信息[^2]。 3. **进程已僵死或异常退出** 当 Java 进程因资源不足(如内存或 CPU 不足)崩溃、或被强制终止时,可能会留下残留状态信息。此时,即使进程实际已不存在,`jps` 仍可能显示 `-- process information unavailable`[^3]。 ### 解决方法 要彻底清除这些不可用的进程条目,可以采取以下措施: - **手动删除 `/tmp/hsperfdata_<user>` 目录中的缓存文件** 这些目录用于存储 JVM 的性能数据,若进程已终止但缓存未清理,可直接删除对应目录: ```bash rm -rf /tmp/hsperfdata_root ``` 此操作将清除当前用户(如 `root`)的 JVM 缓存信息,使得 `jps` 命令刷新后不再显示无效条目[^1]。 - **确认进程是否真正终止** 可通过 `ps -ef | grep 50059` 检查是否存在实际运行的进程: ```bash ps -ef | grep 50059 ``` 若无输出,则说明该进程已不存在,仅是 `jps` 缓存未更新[^3]。 - **避免不同用户间误操作导致进程不可见** 确保使用启动进程的相同用户执行 `jps` 和 `kill` 操作,以避免权限问题导致的信息不可用现象[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值