zoukankan      html  css  js  c++  java
  • 使用sh脚本 优雅的部署SpringBoot项目

    使用sh脚本 优雅的部署SpringBoot项目

    SpringBoot的工程,一般都会打一个jar包,我们在启动时 时常需要nohup java -jar xxx.jar >xx.log &,有时还会添加一些启动参数、环境变量等。最终项目交付给客户每次启动都输入这么多参数难免有些麻烦。我们可以编写一个shell脚本来完成服务的启动、停止、重启、查看状态等操作。

    Linux shell

    只需要将此脚本拷贝到项目同级目录,修改下面代码中第一行的jar包名字即可

    #配置jar名称
    APP_NAME=xxx.jar
    
    #使用说明,用来提示输入参数
    usage() {
    echo "Usage: sh 脚本名.sh [start|stop|restart|status]"
    exit 1
    }
    
    #检查程序是否在运行
    is_exist(){
    pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
    #如果不存在返回1,存在返回0
    if [ -z "${pid}" ]; then
    return 1
    else
    return 0
    fi
    }
    
    #启动方法
    start(){
    is_exist
    if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
    else
    nohup java -jar $APP_NAME > log.file 2>&1 &
    echo "${APP_NAME} start success"
    fi
    }
    
    #停止方法
    stop(){
    is_exist
    if [ $? -eq "0" ]; then
    kill -9 $pid
    else
    echo "${APP_NAME} is not running"
    fi
    }
    
    #输出运行状态
    status(){
    is_exist
    if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
    else
    echo "${APP_NAME} is NOT running."
    fi
    }
    
    #重启
    restart(){
    stop
    start
    }
    
    #根据输入参数,选择执行对应方法,不输入则执行使用说明
    case "$1" in
    "start")
    start
    ;;
    "stop")
    stop
    ;;
    "status")
    status
    ;;
    "restart")
    restart
    ;;
    *)
    usage
    ;;
    esac
    
    

    接下来演示如何使用:

    # 启动
    ./start.sh start
    
    # 停止
    ./start.sh stop
    
    # 重启
    ./start.sh restart
    
    # 查看状态
    ./start.sh status
    

    如果需要定制化的功能,例如修改启动参数等,可以修改对应方法中的代码。

    windows bat

    @echo off
    # jre的路径
    set path=C:Program FilesJavajdk1.8.0_202jrein
    START "SinoEncryption" "%path%java" -jar xx.jar
    

    编辑后右键此bat文件,以管理员身份运行即可

  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/zhangruifeng/p/15213433.html
Copyright © 2011-2022 走看看