[转帖]关于Java:是否可以覆盖-XX + HeapDumpOnOutOfMemoryError生成的堆转储的文件权限?

关于,java,是否,可以,覆盖,xx,heapdumponoutofmemoryerror,生成,转储,文件,权限 · 浏览次数 : 0

小编点评

**如何覆盖堆 dump 文件的权限?** 在 Linux 上,使用 `-XX+HeapDumpOnOutOfMemoryError` 命令创建的 HPROF 文件的权限默认设置为 600,这是一种最佳安全措施,以防止不必要的访问。 然而,在某些情况下,可能需要修改这些权限以允许特定的用户读取或访问文件。 **解决方案:** 1. **使用 `chmod` 命令改变权限:** ```bash chmod g+r java_pid*.hprof ``` 其中 `java_pid` 是运行 Java 进程的进程 ID。 2. **使用 `-XX:OnOutOfMemoryError` 参数指定 HPROF 文件权限:** ```bash -XX:OnOutOfMemoryError=\"chmod g+r java_pid*.hprof\" ``` 3. **使用 `shell` 脚本:** ```bash /path/to/shell/script.sh ``` 其中 `script.sh` 是一个包含 `chmod g+r java_pid*.hprof` 的脚本。 **注意:** * 使用 `chmod` 命令时,请确保使用正确的进程 ID。 * 使用 `-XX:OnOutOfMemoryError` 参数的 `chmod` 命令要放在命令行中,因为它包含空格。 * 确保脚本或脚本文件具有读和写的权限。

正文

https://www.codenong.com/12484559/

 

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"

与[转帖]关于Java:是否可以覆盖-XX + HeapDumpOnOutOfMemoryError生成的堆转储的文件权限?相似的内容:

[转帖]关于Java:是否可以覆盖-XX + HeapDumpOnOutOfMemoryError生成的堆转储的文件权限?

https://www.codenong.com/12484559/ Can you override the file permissions for the heap dump produced by -XX+HeapDumpOnOutOfMemoryError? 在Linux上,使用-XX+H

[转帖]JVM系列之:你知道Java有多少种内存溢出吗

本文为《深入学习 JVM 系列》第二十五篇文章 Java内存区域 关于这部分内容大多来源于《深入理解Java虚拟机》一书。 Java 运行时数据区域(JDK8)如下图所示: 关于上述提到的线程共享和线程隔离区域,下图做详细讲解: 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的

[转帖]JVM系列之:关于即时编译器的那些事

本文为《深入学习 JVM 系列》第十六篇文章 我们在前文学习 Java 是如何执行的这篇文章中有提及即时编译器,这是一项用来提升应用程序运行效率的技术。通常而言,代码会先被 Java 虚拟机解释执行,之后反复执行的热点代码则会被即时编译成为机器码,直接运行在底层硬件之上。 那么问题来了,既然在 Ho

[转帖]SpringBoot 3.0最低版本要求的JDK 17,这几个新特性不能不知道!

2022-02-27 分类:Java 阅读(1872) 评论(0) GitHub 24k Star 的Java工程师成神之路,不来了解一下吗! 最近,有很多人再传说 SpringBoot要出3.0的版本了,并且宣布不再支持 Java 8,最低要求是 Java 17了。 其实,早在2021年9月份,关

[转帖]JVM——内存区域:运行时数据区域详解

https://www.jianshu.com/p/cded765cfd1b 关注:CodingTechWork,一起学习进步。 引言 我们经常会被问到一个问题是Java和C++有何区别?我们除了能回答一个是面向对象、一个是面向过程编程以外,我们还会从底层内存管理和垃圾收集方面作出比较。 对于C++

[转帖]jvm一般相关配置OutOfMemoryError关参数配置解释

一般运行java应用都会根据实际情况设置一些jvm相关运行参数 特别是有关内存和oom溢出等参数,方便后续问题定位和解决 如常用的以下配置 nohup java -Xms256m -Xmx24g -Xmn8g -verbose:gc -XX:+PrintGCDateStamps -XX:+Print

[转帖]解决Java中的java.io.IOException: Broken pipe问题

https://www.cnblogs.com/Chary/p/16835248.html Java 中java.io.IOException: Broken pipe 认识broken pipe pipe是管道的意思,管道里面是数据流,通常是从文件或网络套接字读取的数据。 当该管道从另一端突然关闭

[转帖]Linux kill & Java shutdownhook

https://www.jianshu.com/p/8001a66d37c9 shutdown-hook 建议加上shutdown的钩子 如果程序出现了内存溢出crash 则现在代码是没有任何保护措施的 或者说运维不小心关闭了服务器等 或者运维不小心kill了游戏服务器进程等 无法避免kill -9

[转帖]JVM 中你不可不知的参数

https://zhuanlan.zhihu.com/p/91757020?utm_id=0 有的同学虽然写了一段时间 Java 了,但是对于 JVM 却不太关注。有的同学说,参数都是团队规定好的,部署的时候也不用我动手,关注它有什么用,而且,JVM 这东西,听上去就感觉很神秘很高深的样子,还是算了

[转帖]关于线程的 5 个知识点

https://cloud.tencent.com/developer/article/1920533?from=article.detail.1767994&areaSource=106000.7&traceId=akXSS578NgvCLH6Eiqbla 萝卜白菜各有所爱。像我就喜欢Java。学