Java jps 无法显示进程 id
Java jps About 480 words现象
Linux
上使用jps
查看进程id
,无法显示运行的Java
进程。
命令原理
jps
、jstack
、jcmd
等命令默认查看的是/tmp/hsperfdata_{username}
文件夹下的以进程id
命名的文件。
如:以root
用户启动的Java
服务,运行的进程id
为1
,生成的文件是:/tmp/hsperfdata_root/1
。
问题原因
jps
不显示进程id
可能原因如下:
/tmp
目录的读写权限问题。/tmp
被删除,或不存在/tmp/hsperfdata_{username}/{pid}
文件。/tmp
目录超过10
天或更长时间未读写,Linux
会自动删除该目录。
备注
/tmp/hsperfdata_{username}/{pid}
文件会在对应Java
进程退出后被清除。
如果Java
进程非正常退出(如kill -9
),那么pid
文件会被保留,直到执行一次Java
命令或是加载了JVM
程序的命令(如jps
、javac
、jstat
),会将所有无用的pid
文件都清除掉。
使用-Djava.io.tmpdir
启动参数可以更改默认/tmp
位置。
Views: 1,365 · Posted: 2023-06-27
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...