提问人:user1391606 提问时间:3/2/2022 更新时间:10/22/2022 访问量:245
Tomcat 8 -XX:OnOutOfMemoryError 无法重新启动 Tomcat
Tomcat 8 -XX:OnOutOfMemoryError unable to restart Tomcat
问:
发生 OOM 时,我无法自动重新启动 Tomcat 实例。 我尝试了几个不同版本的定义XX:OnOutOfMemoryError值:
-XX:OnOutOfMemoryError='kill -9 %p;/application/tomcat/bin/start.sh'"
-XX:OnOutOfMemoryError='kill -9 %p;./application/tomcat/bin/start.sh'"
-XX:OnOutOfMemoryError="kill -9 %p;cd /application/tomcat8/bin/;./application/tomcat8/bin/start.sh"
但无论我尝试什么,start.sh 脚本都不会执行,catalina.out 显示:
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="kill -9 %p;/application/tomcat8/bin/start_commons.sh"
# Executing /bin/sh -c "kill -9 28005"...
Tomcat 实例被成功杀死,但随后什么也没发生。
有什么想法吗?
答:
0赞
user1391606
10/22/2022
#1
唯一真正有效的方法是添加 XX:OnOutOfMemoryError,如下所示:
export CATALINA_OPTS="-Xms512m -Xmx1024m -XX:OnOutOfMemoryError='kill -9 %p' "
并有一个单独的脚本检查进程是否仍在运行,如果没有,则重新启动 Tomcat 实例。
评论