Como reiniciar o aplicativo java gerenciado pelo systemd em erros OutOfMemory

5

Eu tenho o aplicativo java (no topo do framework 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 a reinicialização de serviços de algumas condições, por exemplo, a reinicialização automática após erros de OutOfMemory

    
por popalka 17.01.2017 / 11:06

1 resposta

3

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

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

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

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

na versão 8u92 do Java ou superior, você pode usar -XX:+CrashOnOutOfMemory ou -XX:+ExitOnOutOfMemoryError

Em seguida, configure seu serviço para reiniciar a falha:

Restart=on-failure

ou

Restart=always
    
por 17.01.2017 / 16:40

Tags