Can you override the file permissions for the heap dump produced by -XX+HeapDumpOnOutOfMemoryError?
在Linux上,使用-XX+HeapDumpOnOutOfMemoryError时,所产生的hprof文件由运行Java进程的用户所拥有,并具有600的权限。
我知道这些权限是最好的安全措施,但是可以覆盖它们吗?
- 有人有解决方案吗?
您可以使用以下命令启动JVM
1
|
java -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError="chmod g+r java_pid*.hprof" {mainclass} {args}
|
该命令在创建堆转储后运行。 例如,这将允许组读取访问当前目录中的所有堆转储文件。
-XX:OnOutOfMemoryError参数对我不起作用,在JRE 7(1.7.0_72)上的命令中带有空格。 但是指向一个shell脚本(没有空格)确实可以。 例:
-XX:OnOutOfMemoryError="/path/to/shell/script.sh"