通常,我使用 jstack 来检查 java 进程是否正常工作。虽然我发现,当/tmp/java_pid<num>
(num是java进程的pid)socket文件被删除时,jstack将无法工作。像这样:
[xxx]$ jstack -l 5509
5509: Unable to open socket file: target process not responding or HotSpot VM not loaded
The -F option can be used when the target process is not responding
(PS.我不想用“-F”,可能还有其他问题)
有没有办法改变套接字文件的位置(不是/tmp)?还是在发现不存在时再次生成套接字文件?现在我所做的是再次重新启动 java 进程,这是一个非常糟糕的解决方案。
谢谢!