【问题标题】:How can I suppress the creation of the hs_err_pid file?如何禁止创建 hs_err_pid 文件?
【发布时间】:2010-11-10 21:01:49
【问题描述】:

我们在 java 1.6.0_13 下运行一个 java 应用程序。当它崩溃时,它会创建正常的 hs_err_pid 文件。即使应用程序崩溃,我也不希望创建此文件。 java命令行上有没有办法抑制这个? 我熟悉 -XX:ErrorFile 选项。如果我将其设置为空字符串会抑制它吗?

【问题讨论】:

  • 您可能会通过 JNI 导致 JVM 崩溃来测试它(只需创建一个小 C 库来进行段错误)或类似的东西。考虑到像 JVM 崩溃这样的严重故障而抑制日志输出,感觉有点恶心。
  • 如果使用 Linux,您可以使用命令 kill 发送 SIGSEGV 信号来测试您的修复。

标签: java java-6 hs-err


【解决方案1】:

如果您使用的是 Unix/Linux 系统,请尝试将 -XX:ErrorFile 设置为 /dev/null(或者,如果您使用的是 Windows,请尝试 NUL)。

【讨论】:

  • 我必须在哪个配置文件中将 -XX:ErrorFile 设置为 linux 中的 /dev/null ?
【解决方案2】:

对于 Oracle HotSpot(自 6b21)和 OpenJDK,应使用 -XX:+SuppressFatalErrorMessage 选项来防止创建 hs_err_pid 文件。

现在,使用-XX:ErrorFile=/dev/null 实际上不会像预期的那样工作,因为如果指定给ErrorFile 的文件路径存在,JVM 将不会尝试覆盖它并且会回退到默认的hs_err_pid 位置(没有/dev/null 的特殊情况处理。

有关更多详细信息,另请参阅:

【讨论】:

    猜你喜欢
    • 2011-07-26
    • 1970-01-01
    • 2011-07-06
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 2012-03-19
    • 1970-01-01
    相关资源
    最近更新 更多