Speicherlecks treten auf. Ich möchte jedoch von der Benachrichtigung befreit werden, dass die Website während eines langen Urlaubs ausgefallen ist, und habe daher die Methode untersucht.
Beispiel: Erstellen Sie eine Datei wie ↓ restartTomcat.sh und platzieren Sie sie an einem geeigneten Ort (/ usr / local / tomcat / bin usw.).
restartTomcat.sh
#!/bin/bash
#Tomcat neu starten (Beispiel) Wenn Sie einen anderen Befehl als Neustart ausführen möchten, schreiben Sie ihn zusammen. Wie das Überspringen von E-Mails.
systemctl restart tomcat.service
Fügen Sie der Umgebungsvariablen CATALINA_OPTS die folgende Option hinzu, um den Befehl anzugeben, der ausgeführt werden soll, wenn OutOfMemoryError auftritt.
Eine Möglichkeit, die Tomcat-JVM-Option anzugeben, ist Wenn Sie eine Datei mit dem Namen "setenv.sh" in / usr / local / tomcat / bin ablegen, wird diese beim Start von Tomcat aus Catalina.sh gelesen.
Beispiel:
setenv.sh
export CATALINA_OPTS="$CATALINA_OPTS -XX:OnOutOfMemoryError=\"/usr/local/tomcat/bin/restartTomcat.sh\""
Dadurch wird restartTomcat.sh auf OutOfMemoryError ausgeführt.
Wenn Sie auch HeapDump ausgeben möchten, fügen Sie der Umgebungsvariablen CATALINA_OPTS die folgenden zwei Optionen hinzu.
--- XX: + HeapDumpOnOutOfMemoryError (HeapDump wird zum Zeitpunkt von OutOfMemoryError ausgegeben.) --- XX: HeapDumpPath (Geben Sie oben das Ausgabeziel von HeapDump an.)
Beispiel:
setenv.sh
export CATALINA_OPTS="$CATALINA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
export CATALINA_OPTS="$CATALINA_OPTS -XX:HeapDumpPath=/usr/local/tomcat/logs"
export CATALINA_OPTS="$CATALINA_OPTS -XX:OnOutOfMemoryError=\"/usr/local/tomcat/bin/restartTomcat.sh\""
Recommended Posts