【问题标题】:JVM Threaddump OnOutOfMemoryError Unrecognized optionJVM Threaddump OnOutOfMemoryError 无法识别的选项
【发布时间】:2021-06-07 10:13:35
【问题描述】:

我想在发生 OutOfMemory 错误时收集线程转储。

我在我的 run.conf 脚本中添加了这个选项:

JAVA_OPTS="${JAVA_OPTS} -XX:OnOutOfMemoryError=/bin/kill -3 %p"

但在启动时我有:

Unrecognized option: -3
Could not create the Java virtual machine.

我试过了:

JAVA_OPTS="${JAVA_OPTS} -XX:OnOutOfMemoryError=\"/bin/kill -3 %p\""

进程启动 args 中的结果是好的:

.... -XX:OnOutOfMemoryError="/bin/kill -3 %p"  ....

但是启动时的错误是一样的:

Unrecognized option: -3
Could not create the Java virtual machine.

【问题讨论】:

    标签: java out-of-memory kill thread-dump java-opts


    【解决方案1】:

    这是一个引用问题。 /bin/kill -3 %p 不会被 shell 作为单个字符串发送到 JVM。

    我建议改用单引号(未经测试):

    JAVA_OPTS="${JAVA_OPTS} -XX:OnOutOfMemoryError='/bin/kill -3 %p'"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 2020-07-02
      • 2018-02-06
      • 2021-11-08
      • 2017-02-14
      • 2022-06-17
      相关资源
      最近更新 更多