我正在使用 32 位 Oracle Java 1.6.0 在 x86_64 CentOS 5.7 上运行 tomcat 5.5。
tomcat使用的JVM进程有6421 pid。 Tomcat 工作正常。
当运行 jstack
时失败:
[root@mybox ~]# jstack 6421
6421: well-known file is not secure
为了得到任何合理的输出,我需要使用 force 选项:
[root@mybox ~]# jstack -F 6421
Attaching to process ID 6421, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 17.0-b16
Deadlock Detection:
No deadlocks found.
(...)
问题是:
- 错误信息“知名文件不安全”是什么意思?
- 什么是“知名”文件?
- 为什么/什么时候
jstack
命令在没有强制选项的情况下不起作用?
提前致谢。
最佳答案
这可能是由于/tmp 中用于与进程通信的文件与 jstack 获得的权限不同。有问题的文件是/tmp/hsperfdata_$USER/$PID。
不知道为什么它与 -F 一起工作,因为手册页只是说“当 'jstack [-l] pid' 没有响应时强制堆栈转储。”
关于java - jstack - 知名文件不安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9100149/