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_roothsperfdata_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