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:+CrashOnOutOfMemory
ou-XX:+ExitOnOutOfMemoryError
Em seguida, configure seu serviço para reiniciar em caso de falha:
Restart=on-failure
ou
Restart=always