Java jcmd 报 AttachNotSupportedException: Unable to open socket file
Java jcmd jhsdb About 935 words错误信息
com.sun.tools.attach.AttachNotSupportedException: Unable to open socket file /proc/1/root/tmp/.java_pid1: target process 1 doesn't respond within 10500ms or HotSpot VM not loaded
at jdk.attach/sun.tools.attach.VirtualMachineImpl.<init>(VirtualMachineImpl.java:105)
at jdk.attach/sun.tools.attach.AttachProviderImpl.attachVirtualMachine(AttachProviderImpl.java:58)
at jdk.attach/com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:207)
at jdk.jcmd/sun.tools.jcmd.JCmd.executeCommandForPid(JCmd.java:113)
at jdk.jcmd/sun.tools.jcmd.JCmd.main(JCmd.java:97)
关于 /tmp/.java_pid1
Java
服务启动后会在/tmp
目录下创建一个Socket
文件,以.java_pid{pid}
命名。
如:Java
运行的进程id
为1
,则文件名为.java_pid1
。
问题原因
可能原因如下:
/tmp
目录的读写权限问题。/tmp
被删除,或不存在/tmp/hsperfdata_{username}/{pid}
文件。/tmp
目录超过10
天或更长时间未读写,Linux
会自动删除该目录。
解决
方法一
添加启动参数-XX:+StartAttachListener
(需要重启)
方法二
使用jhsdb jmap
命令attach
到该进程,虽然可能会报错,但会生成/tmp/.java_pid1
文件。
Views: 2,080 · Posted: 2023-06-29
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...