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: 2,560 · Posted: 2023-06-27
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...