Ich habe die Java-App (auf dem Spring Boot-Framework) als systemd-Dienst installiert.
[Unit]
Description=${module_name}-service
Requires=network.target
After=syslog.target
[Service]
User=${user_name}
ExecStart=/opt/${module_name}/${module_name}-${version}.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
So verwalten Sie Dienstneustarts unter bestimmten Bedingungen, z. B. den automatischen Neustart nach OutOfMemory-Fehlern
Antwort1
Wie Fildor sagt, schlage ich vor, dass Sie die Speicherprobleme beheben.
Danach ist eine mögliche Lösung:
Wenn Sie Java vor 8u92 verwenden, können Sie der JVM das folgende Argument hinzufügen:
java -jar <jar-name> -XX:OnOutOfMemoryError="kill -9 %p"
in Java Version 8u92 oder höher können Sie verwenden -XX:+CrashOnOutOfMemory
oder-XX:+ExitOnOutOfMemoryError
Konfigurieren Sie dann Ihren Dienst so, dass er bei einem Absturz neu gestartet wird:
Restart=on-failure
oder
Restart=always