zoukankan      html  css  js  c++  java
  • 实现SpringBoot应用的优雅关机

    1、pom.xml中增加依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    

    2、application.properties配置属性

    #启用shutdown
    management.endpoint.shutdown.enabled=true
    management.endpoints.web.exposure.include=*
    # 自定义管理端前缀
    management.endpoints.web.base-path=/saulala
    # 自定义管理端端口
    management.server.port=12581
    # 指定本机地址作为管理端地址,不允许远程连接,保证安全
    management.server.address=127.0.0.1
    

    3、关闭服务的接口

    curl -X POST 127.0.0.1:12581/saulala/shutdown
    

    4、封装关闭脚本/home/myservice/scripts/shutdown.sh

    #!/bin/bash
    PORT=$(netstat -ntulp | grep 12580)
    # 如果PORT不为空说明有程序占用该端口号
    if [[ -n $PORT ]]; then
            echo "The server is open, ready to close"
            RESULT="000"
            while [[ $RESULT == "000" ]]; do
                    echo "Closing down ..."
                    # 优雅关闭springboot项目
                    RESULT=$(curl -X POST 127.0.0.1:12581/saulala/shutdown)
                    sleep 2
            done
            echo "Close off success"
    fi
    echo "Being started ..."
    ————————————————
    版权声明:本文为CSDN博主「Twilight.c」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/XlxfyzsFdblj/article/details/82054744
    

      

    5、配置服务/usr/lib/systemd/system/myservice.service,并启用systemctl enable myservice.service

    [Unit]
    Description=myservice service
    After=myservice.service
    
    [Service]
    Type=simple
    NotifyAccess=all
    TimeoutStartSec=0
    Restart=on-failure
    ExecStart=/home/myservice/jdk1.8.0_65/bin/java -jar /home/myservice/myservice-0.0.1.jar --spring.config.location=/home/myservice/application.properties> log.info 2>log.error &
    ExecStop=/home/myservice/scripts/shutdown.sh 
    SuccessExitStatus=143
    
    [Install]
    WantedBy=multi-user.target
    

    6、启动、关闭服务

    service start myservice
    service stop myservice
    

      

  • 相关阅读:
    [转] word2vec
    跨平台踩的一个大坑!
    在C 与 C++混编中, 出现error LNK2019: 无法解析的外部符号 "int __cdecl main_(int,char * *)" (?main_@@YAHHPEAPEAD@Z),该符号在函数 main 中被引用
    opencv2corecuda.hpp(106): error C2059: 语法错误:“常量”
    opencv2flannmatrix.h(69): error C2059: 语法错误:“,”
    C调用C++, C++调用C方法
    python与C,在写程序时踩过的坑!
    VS2015 + OPENCV + CUDA 安装流程
    CC++学习笔记 3
    CC++学习笔记 2
  • 原文地址:https://www.cnblogs.com/yiyitong/p/11613268.html
Copyright © 2011-2022 走看看