[LINUX] Stellen Sie Tomcat so ein, dass es automatisch neu gestartet wird, wenn ein OutOfMemoryError ausgelöst wird

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.

1: Bereiten Sie eine Batchdatei vor, die Sie automatisch ausführen möchten, wenn OutOfMemoryError auftritt.

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

2: Fügen Sie der jvm-Option von Tomcat XX: OnOutOfMemoryError hinzu.

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.

3: HeapDump wird ebenfalls ausgegeben.

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

Stellen Sie Tomcat so ein, dass es automatisch neu gestartet wird, wenn ein OutOfMemoryError ausgelöst wird
Wenn es schwierig ist, beim Senden von E-Mails mit Python lokal einen SMTP-Server einzurichten.
Ein Memorandum beim automatischen Erwerb mit Selen
Seien Sie vorsichtig, wenn Sie einem Array ein Array hinzufügen