如何在 java 应用程序完成执行后立即停止 Linux 服务

How to stop a Linux service as soon as java application completes its execution

提问人:blinduser_123 提问时间:7/20/2023 更新时间:7/20/2023 访问量:27

问:

背景:

我开发了一个Spring Boot应用程序(即myapp),它可以根据配置文件(application.yml)给出的输入(如果输入为真,则运行无限次,否则只运行一次)无限次运行。

此应用程序在远程服务器上作为 linux 服务(即 myService.sh)运行。

sh myService.sh start>将启动服务>将停止服务sh myService.sh stop

当服务启动时,Spring Boot应用程序将被触发并执行

请注意触发 jar/application 的脚本文件内容。$/usr/lib/jvm/java-11-openjdk-11.0.19.0.7-1.el7_9.x86_64/bin/java -jar myapp.jar -Dspring.config.location=application.yml

案例 1: 当服务启动并且为 myapp.jar 提供的输入为“true”时,应用程序假定执行无限时间,并且服务处于状态,应运行,直到显式停止服务。 案例 2: 当服务启动并且为 myapp.jar 提供的输入为“false”时,应用程序将完成一次性执行。但服务的状态仍在运行。

对案例 2 的期望: 当 jar 执行完成后,服务也应停止运行。

我已经做了在线研究,以停止当前使用 java 运行的 linux 服务并安全地退出 java 应用程序,它没有多大用处。

感谢您的回复。

关于如何实现期望的建议

Linux Spring-Boot Spring-MVC 异常

评论

0赞 blinduser_123 7/21/2023
我可以找到解决方案,您可以参考以下链接 foojay.io/today/clean-shutdown-of-spring-boot-applications

答: 暂无答案