我对猫有个问题。每隔一段时间Tomcat get就会被一个oom杀死..。
因此,我用压力测试测试它,以强制oom,然后尝试重新启动tomcat。
我编写了一个简单的bash脚本,它将重新启动tomcat服务。
这是一个脚本:
#!/bin/bash
if [ "$(systemctl is-active tomcat9)" == "failed" ] || [ "$(systemctl is-active tomcat9)" == "inactive" ]; then
echo "Restarting tomcat!"
systemctl restart tomcat9.service
exit
else
exit
fi在setenv.sh中,我写了这个选项。
-XX:OnOutOfMemoryError='/root/restart.sh‘
这就是setenv.sh脚本的样子:
#!/bin/sh
JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom -server -Xms1536m -Xmx1536m -XX:NewSize=1536m -XX:MaxNewSize=1536m -XX:OnOutOfMemoryError='pkill java;/root/restart.sh' -XX:+DisableExplicitGC -DecadiaConsoleLogLevel=off"但我不知道为什么"XX:OnOutOfMemoryError“选项不起作用.
有人能帮我解决这个问题吗?
提前感谢!
发布于 2022-09-26 15:33:46
您正在通过systemd运行Tomcat。这有两个后果:
,
https://stackoverflow.com/questions/73855818
复制相似问题