Tengo la aplicación Java (además del marco Spring Boot) instalada como servicio 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
Cómo gestionar los reinicios del servicio en algunas condiciones, por ejemplo, el reinicio automático después de errores de OutOfMemory
Respuesta1
Como dice Fildor, te sugiero que soluciones los problemas de memoria.
Después de eso una posible solución es:
Si está utilizando Java anterior a 8u92, puede agregar a la JVM el siguiente argumento:
java -jar <jar-name> -XX:OnOutOfMemoryError="kill -9 %p"
en Java versión 8u92 o superior puedes usar -XX:+CrashOnOutOfMemory
o-XX:+ExitOnOutOfMemoryError
Luego configure su servicio para que se reinicie en caso de falla:
Restart=on-failure
o
Restart=always