我想在发生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.
这是一个报价问题。外壳不会将/bin/kill -3 %p
作为单个字符串发送到JVM。
我建议尝试单引号(未经测试(:
JAVA_OPTS="${JAVA_OPTS} -XX:OnOutOfMemoryError='/bin/kill -3 %p'"