JPS命令 干啥的,为啥有的时候没有用?

jps 是在linux系统中获取该用户已经启动了那些java相关的程序,并将这些程序按进程ID 给列出,这个命令可以比较方便的在linux 下管理java相关的程序。

但是有的时候我们明明已经启动了java 程序,再用jps 命令去查看时,会发现jps 根本没有列出相应的进程ID,但是用ps -ef|grep java 却发现有相关进程,这是怎么回事了?


这个就要说明一下jps的程序的数据来源,它是通过检查这个文件/tmp/hsperfdata_用户名/pid下来进行显示的。

jdk只要被启动,则应该在这个文件/tmp/hsperfdata_用户名/下保存进程ID信息。

如果这个文件/tmp/hsperfdata_用户名/不存在,或则 读写权限没有,那么jps 则失效。

通过我自己的机器发现/tmp/hsperfdata_用户名/权限有一定的问题,所以更改目录权限,通过重启java程序,再使用jps命令则发现问题得到解决


JPS命令 干啥的,为啥有的时候没有用?

jps文件


JPS命令 干啥的,为啥有的时候没有用?

文件中的pid


分享到:


相關文章: