Como reiniciar o aplicativo java gerenciado pelo systemd em erros OutOfMemory

Como reiniciar o aplicativo java gerenciado pelo systemd em erros OutOfMemory

Eu tenho o aplicativo Java (no topo da estrutura Spring Boot) instalado como serviço systemd.

[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

Como gerenciar reinicializações de serviço de algumas condições, por exemplo, reinicialização automática após erros de OutOfMemory

Responder1

Como Fildor disse, sugiro que você resolva os problemas de memória.

Depois disso uma possível solução é:

Se você estiver usando Java anterior a 8u92, poderá adicionar o seguinte argumento à JVM:

java -jar <jar-name> -XX:OnOutOfMemoryError="kill -9 %p"

em Java versão 8u92 ou superior você pode usar -XX:+CrashOnOutOfMemoryou-XX:+ExitOnOutOfMemoryError

Em seguida, configure seu serviço para reiniciar em caso de falha:

Restart=on-failure

ou

Restart=always

informação relacionada