admin管理员组文章数量:1638805
看到了吗 倒数第二行 4604 -- process information unavailable
弄虚拟机写jps命令看到的
===========================
各位按目录各求所需跳转哈
因为网上千篇一律全是找到就kill掉,图截个头尾就没了,我就补一下详细图文操作版
===========================
目录
【1】问题
【2】是什么
【3】为什么
【情況1/2】该程序是在运行的 只是抽风了看不到
【情況2/2】该程序是没运行了 只是抽风了
【4】怎么做
<提供给老手的步骤>
<提供给新手的步骤>
【1】问题
不知道这是什么意思
不知道是什么东西怎么回事
直接杀发现杀不掉怎么办
意外干掉了会有影响吗
【2】是什么
翻译 : 进程信息无法获取 process information unavailable
jps : 是jdk提供的一个查看当前java进程的小工具
jps什么时候用 : 比如你在启动了Nacos又不知道他在不在,因为ps -ef | grep nacos找不到,所以可以借助jps命令看到,看我文章顶上第一张图里的nacos-server.jar就是
【3】为什么
这里只写我自己之前遇到的情况--问题怎么冒出来的,给大家参考一下,在同一台电脑里操作的
【情況1/2】该程序是在运行的 只是*抽风了看不到
(关于*抽风,文末会增加解释)
① 用户xiaoming 启动了elasticsearch服务
②此时发生了一件事 :
→虚拟机死机卡死不动了, 而我设置的elasticsearch服务没有设置开机自动启动,于是我重启了虚拟机
→或者直观点,我直接切换回超管root用ps -ef | grep elasticsearch然后kill -9 他的PID手动干掉了这个服务
③超管root 输入了jps命令,此时出现 -- process information unavailable(无法获取进程信息)
④超管root 又输入了 ps -ef | grep 4604
发现进程并不存在 → 试图直接用 kill -9 4604→返回No such process(没有此进程) →jps看了一眼还在 , 说明杀不掉
⑤切换到用户xiaoming : 再次启动了elasticsearch服务
⑥用户xiaoming 做了两件事
输入jps→4604显示对应的服务就是elasticsearch,并没有显示process information unavailable
再用 ps -ef | grep 4604 检查发现进程正常运行
⑦切换到超管root
输入jps→4604 显示process information unavailable
但是 用ps -ef | grep 4604 发现这个程序是正常运行的
⑧所以怎么办
你自己看这个进程还要不要用 , 如果要用你留着别管他就好 , 抽风过会儿可能会好的,
多久好我没有注意,觉得不美观的话
可以删了/tmp/hsperfdata_xiaoming把服务关了重启一次(这是啥意思怎么事儿→跳转到下面"怎么做")
【情況2/2】该程序是没运行了 只是抽风了
情况不多赘述了 , 就是这个服务你是关掉了的 , 没开这个服务 , 但是输入jps命令
结果还是process information unavailable
同时ps -ef | grep 服务 显示的也是No suchProcess
你看这个图最后一行
那么既然直接kill进程不行 , 但是jps又不想看到 , 容易误导自己或者不美观 , 那就直接找到根源干掉
↓↓↓
【4】怎么做
先把做法摆这 ,老手可以直接按着做法步骤目的就是干掉pid文件
新手不熟悉的建议执行每个步骤都看一下下面的说明
=================================================
<提供给老手的步骤>
①确认登录账号为 超管root
②cd /tmp
③ll 看hsperfdata_开头的文件夹 逐一进去排查出process information unavailable的pid文件
④rm -rf pid号 干掉以后再看jps就发现无了,搞定
放俩图给你看看 , 你看就是倒数那俩,因为我就俩号所以就俩文件夹
图1/2 找hsperfdata_开头的文件夹
图2/3 操作步骤前的效果
图3/3 操作完上述步骤后的效果
你看是不是ok了
=================================================
<提供给新手的步骤>
①确认登录账号为 超管root
②输入命令 cd
# 目的 : 确认现在你在目录[root@你名字 ~]#
③输入命令 cd /tmp
# 目的 : 进入/tmp,这是linux临时文件目录,能够被任何用户,任何程序访问,一般用来存放程序的临时文件
④输入命令 ll
# 目的 : 俩小写L啊别写错 , 用来看/tmp这个临时文件目录里的东西 ,
此时可以看到有以hsperfdata_开头的若干个文件夹
# 作用 : hsperfdata_其实是jvm 运行时会生成的目录 , 下划线后面接的是用户的名字
# 比如 : hsperfdata_xiaoming。
这个文件夹是用来存放pid文件,可以通过这些文件看到他启动的jvm进程信息
若干个 : 可以看到图中有俩hsperfdata_root和hsperfdata_elasticsearch ,
意思就是 : 我在超管root和 名为elasticsearch的用户 这俩号都分别都启动过不同的jvm进程,所以才会留下这个hsperfdata_的文件夹 ;
事实也是如此 : 我曾用名为elasticsearch的用户启动过elasticsearch服务,root的话我启动过一些乱七八糟的其他java进程..所以留下了这个hsperfdata_的文件夹 , 这样讲明白了吧
* 备注 : jmap,jstack 等工具会读取 /tmp/hsperfdata_$USER 下的 pid 文件获取连接信息.
===================================================
!!!接下来这步看清楚说明再改你的命令 , 别一股脑复制黏贴了!!!
⑤输入命令 cd hsperfdata_xiaoming/
# 说明 : 你的文件夹下面肯定有很多hsperfdata_开头的,我这个叫xiaoming所以我才进去的 ,
你进你自己的 , 比如你有个号叫xiaohong , 然后列表里也确实有hsperfdata_xiaohong
那你就要把我步骤命令的xiaoming改为xiaohong再进去懂吗。。。
如果xiaohong里没有你就换个文件夹接着找 , 找什么 ↓↓↓
# 目的 : 进入各个hsperfdata_的文件夹,然后输入ll 查看pid文件 ;
由于文件名就是pid号 , 所以你对应着看
那个出现 -- process information unavailable的pid号是啥
找到以后再执行第⑥步!!!!!!!!
===================================================
!!!看清楚rm -rf [这里填你那个出现process information unavailable的pid号,看下面]!!!
⑥输入命令 rm -rf 4604
# 说明 : 我是4604出现process information unavailable我才写的4604啊
# 目的 : rm -rf 的意思是强行移除 , 后面接要移除的东西 , 所以这个命令就直接干掉了4604这个文件
(* 备注: 如果你不写-rf他还要问你是不是真的要删除啊~~然后你还要写个y(yes)确认删除很麻烦的~
⑦cd 回到主界面后再输入 jps 命令 你就发现问题解决了,效果你去看老手步骤后面有附图
------------------------------------
*抽风 : 经过若干次测试发现存在两种情况 :
①用户A启动了es ,但是用户B权限不够,所以看不到(其实开发的时候遇到很多问题卡住都和权限不足相关,平时可以多留意下)
②用户B权限够,但是确实就是看不到,此处还要去深究各个不同软件的配置,因为并不会严重影响开发,暂未去深入
如果平时遇到类似这样的问题,可以从两个方面入手:
①启动这个应用的用户是谁,看下他是不是开着这个应用,根据实际情况干掉,不要随便kill
②检查一下这个软件的权限,如有条件可以自行更改一下权限范围
有什么其他的我之后会再补充
参考内容
hsperfdata_$USER说明 - 庆沉的个人空间 - OSCHINA - 中文开源技术交流社区
本文标签: 解决办法后端详细informationProcess
版权声明:本文标题:【后端】--process information unavailable解决办法[详细版] 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1729277633a1193701.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论