Jvm XX:setenv.sh上的OnAutofMemoryError

Jvm XX:setenv.sh上的OnAutofMemoryError,jvm,out-of-memory,tomcat5.5,Jvm,Out Of Memory,Tomcat5.5,我想设置一个脚本,它将自动重新启动服务器 我将以下代码写入setenv.sh文件 JAVA_OPTS="$JAVA_OPTS -XX:OnOutOfMemoryError=/usr/local/apache-tomcat-5.5.30/bin/shutdown.sh;/usr/local/apache-tomcat-5.5.30/bin/startup.sh;" 它不能正常工作。 我正在使用tomcat 5来回答您的问题-我认为错误处理程序无法运行多个命令。如果要执行此操作,请编写一个小的重新

我想设置一个脚本,它将自动重新启动服务器

我将以下代码写入
setenv.sh
文件

JAVA_OPTS="$JAVA_OPTS -XX:OnOutOfMemoryError=/usr/local/apache-tomcat-5.5.30/bin/shutdown.sh;/usr/local/apache-tomcat-5.5.30/bin/startup.sh;"
它不能正常工作。
我正在使用tomcat 5来回答您的问题-我认为错误处理程序无法运行多个命令。如果要执行此操作,请编写一个小的重新启动脚本并运行自定义脚本

不过,我会再想一想。并非每个OutOfMemoryError都意味着服务器应该自动重启。您最好获得一个通知,然后对服务器进行概要分析,以了解OOME的原因,这样您就可以摆脱它

附言 有什么理由使用旧的tomcat 5.5吗?tomcat 7相当成熟。

使用CATALINA_选择
你说工作不正常是什么意思?你能给出一个具体的错误吗?当OutOfMemoryError发生时,我无法重新启动tomcat。你得到了什么错误?日志中有消息吗?java.lang.OutOfMemoryError:java堆空间java.lang.OutOfMemoryError:PermGen空间这2个错误至少在一天内出现。然后我得到http 500错误,然后它告诉我系统不可访问。tomcat走了谢谢你的帮助。你能告诉我一件事吗?我们有2GB的内存,我们的tomcat一天至少宕机一次。一次只有50个用户使用它。你能帮我吗?首先,检查堆的OOME还是perm gen的OOME(它在日志中)。如果您需要几分钟的停机时间(最坏的情况),请添加-XX:+HeapDumpOnOutOfMemoryError标志,该标志将自动提供一个堆转储文件,您可以使用以下应用程序对其进行分析:
CATALINA_OPTS="${CATALINA_OPTS} -XX:OnOutOfMemoryError=\"/bin/sleep 30;/bin/kill %p; /bin/sleep 60; /bin/kill -9 %p\""