Spring Boot 优雅停止服务
java1234
共 7589字,需浏览 16分钟
· 2021-05-20
点击上方蓝色字体,选择“标星公众号”
优质文章,第一时间送达
1、基础知识
2、测试
2.1、新建测试项目
2.1.1、环境信息
2.1.2、新建 SpringBoot 项目
2.2、打包
2.3、部署
2.3.1、环境信息
2.3.2、手动优雅停止服务
[root@test test]# nohup java -jar ./demo-0.0.1-SNAPSHOT.jar > ./logs/stdout.log 2>&1 &
[1] 1679
[root@test test]# ps -ef|grep demo-0.0.1-SNAPSHOT.jar
root 1679 20331 99 23:36 pts/0 00:00:12 java -jar ./demo-0.0.1-SNAPSHOT.jar
root 1729 20331 0 23:36 pts/0 00:00:00 grep --color=auto demo-0.0.1-SNAPSHOT.jar
[root@test test]# kill 1679
[root@test test]# more logs/stdout.log
nohup: ignoring input
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.3.7.RELEASE)
2021-05-13 23:36:31.536 INFO 1679 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication on 196-Pure-CentOS7 with PID 1679 (/root/test/demo-0.0.1-SNAPSHOT.jar started by root in /root/test)
2021-05-13 23:36:31.541 INFO 1679 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default
2021-05-13 23:36:32.807 INFO 1679 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2021-05-13 23:36:32.825 INFO 1679 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-05-13 23:36:32.825 INFO 1679 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.41]
2021-05-13 23:36:32.917 INFO 1679 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2021-05-13 23:36:32.918 INFO 1679 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1285 ms
2021-05-13 23:36:33.171 INFO 1679 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2021-05-13 23:36:33.388 INFO 1679 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2021-05-13 23:36:33.404 INFO 1679 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 2.59 seconds (JVM running for 3.289)
2021-05-13 23:40:40.481 INFO 1679 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService 'applicationTaskExecutor'
2.3.3、脚本退出
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.ApplicationPidFileWriter;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
// generate a pid in a specified path, while use command to shutdown pid : cat ./app.pid | xargs kill
SpringApplication application = new SpringApplication(DemoApplication.class);
application.addListeners(new ApplicationPidFileWriter("./app.pid"));
application.run();
}
}
#!/bin/bash
# Program:
# This program for start java services.
# History:
# 2021/05/12 First release
# PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
# export PATH
# start javar services
nohup java -jar ./demo-0.0.1-SNAPSHOT.jar > ./logs/stdout.log 2>&1 &
exit 0
#!/bin/bash
# Program:
# This program for stop java services.
# History:
# 2021/05/12 First release
# PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
# export PATH
# service : java
cat ./app.pid | xargs kill
exit 0
3、总结
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:
https://blog.csdn.net/achi010/article/details/116770240
粉丝福利:Java从入门到入土学习路线图
👇👇👇
👆长按上方微信二维码 2 秒
感谢点赞支持下哈
评论
阿里的同事,写的代码真 TMD 优雅!
通过这篇文章你将了解到整洁的代码对项目、公司和你的重要性,以及如何书写整洁的代码.通过命名、类、函数、测试这四个章节,使我们的代码变得整洁.1、为什么要保持代码整洁?不整洁的代码随着时间的增加而增加时,生产力会随之降低.导致的结果就是:代码不易扩展或扩展容易引发其他问题程序崩溃加班增加公司成本(加人
Java专栏
1
多人同时导出 Excel 干崩服务器!新来的阿里大佬给出的解决方案太优雅了!
点击关注公众号,Java 干货及时推送↓推荐阅读:面试辅导,我们出大成果了!来源:juejin.cn/post/7259249904777838629前言 业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,
Java技术栈
1
学一学 Spring Boot 3.x
在 Java 后端开发领域,功能强大的 Spring 开源框架不仅是首选,也是事实上的标准。但由于 Spring 存在配置烦琐、部署不易、依赖管理困难等问题,因此基于 Spring 的快速开发框架 Spring Boot 应运而生,它能大大简化 Spring 应用程序的配置和部署过程。2018 年,
小哈学Java
0
有意思!一个关于 Spring 历史的在线小游戏
发现 Spring One 的官网上有个好玩的彩蛋,分享给大家!进到Spring One的官网,可以看到右下角有个类似马里奥游戏中的金币图标。点击该金币之后,会打开一个新的页面,进入下面这样一个名为:The History Of Spring 的在线小游戏你可以使用上下左右的方向键来控制Spring
公众号程序猿DD
1
springboot第70集:字节跳动后端三面经,一文让你走出微服务迷雾架构周刊
创建一个使用Kubernetes (K8s) 和 Jenkins 来自动化 GitLab 前端项目打包的CI/CD流水线,需要配置多个组件。下面,我将概述一个基本的设置步骤和示例脚本,以帮助你理解如何使用这些工具整合一个自动化流程。前提条件确保你已经有:Kubernetes 集群:用于部署 Jenk
程序源代码
0
一站式解决方案:基于 Arthas 实现服务发现和权限控制
来源:juejin.cn/post/7281849496983994383👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接
小哈学Java
0
微服务与领域驱动设计,架构实践总结
来源:知了一笑👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接:http://116.62.199.48/ ,新
小哈学Java
0
Spring Boot + flowable 快速实现工作流
关注我们,设为星标,每天7:40不见不散,架构路上与您共享回复架构师获取资源大家好,我是你们的朋友架构君,一个会写代码吟诗的架构师。来源:blog.csdn.net/zhan107876/article/details/120815560总览一、flowable-ui部署运行二、绘制流程图绘图细节:
Java架构师社区
0