首页 > 解决方案 > 为生成的 HeapDumpOnOutOfMemoryError 文件 .hprof 授予其他人读取权限

问题描述

我用这些参数开始我的java

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/log/${SERVICE}_`date +%Y-%m-%d:%H:%M:%S`.hprof"

发生堆转储时,.hprof文件有-rw-------(600)权限,其他用户无法读取。

如何使这些文件在644获得许可的情况下生成?

尝试:我尝试通过此-XX:+HeapDumpOnOutOfMemoryError="chmod 644 *.hprof"但收到错误:

Improperly specified VM option 'HeapDumpOnOutOfMemoryError=chmod'

正确的语法应该是什么?谢谢

标签: javalinuxheap-dumphprof

解决方案


发现问题,正确的args列表应该是

-XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError='chmod 644 *.hprof' -XX:HeapDumpPath=/log/${SERVICE}_`date +%Y-%m-%d:%H:%M:%S`.hprof"

由于我将所有内容都放在双引号中然后放入JAVA_OPTIONS,因此内引号应该是单引号


推荐阅读