我有作为systemd服务安装的Java应用程序(在Spring Boot框架之上)。
[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
如何pipe理某些情况下的服务重启,例如OutOfMemory错误后自动重启
像Fildor说,我build议你解决内存问题。
之后,一个可能的解决scheme是:
如果您使用的是Java之前的版本8u92,则可以将以下参数添加到JVM中:
java -jar <jar-name> -XX:OnOutOfMemoryError="kill -9 %p"
在Java版本8u92或更高版本中,您可以使用-XX:+CrashOnOutOfMemory
或-XX:+ExitOnOutOfMemoryError
然后configuration您的服务以在崩溃时重新启动:
Restart=on-failure
要么
Restart=always