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文件,以管理员身份运行即可

  • 相关阅读:
    $resource详解
    大白话讲解Promise(一)
    《AngularJS》5个实例详解Directive(指令)机制
    Openstack实现共有云VPC的SDN网络
    Openstack实现共有云多flat网络
    Openstack使用NFS作为后端存储
    Openstack块存储cinder安装配置
    Openstack创建镜像
    Openstack深入了解虚拟机
    Python全栈day26-27(面向对象进阶)
  • 原文地址:https://www.cnblogs.com/zhangruifeng/p/15213433.html
Copyright © 2011-2022 走看看