首页 > 编程语言 > 详细

Spring Boot 项目启动管理脚本

时间:2019-11-13 18:56:54      阅读:79      评论:0      收藏:0      [点我收藏+]

boot app.jar start

脚本代码startenv.sh

#!/bin/bash

# 刷新环境变量
source /etc/profile

# 应用路径
#APP_HOME=/home/www/apps
# 应用名称
APP_NAME=$1

# Shell使用说明,用来提示输入参数
usage() {
    echo "Usage: sh boot [APP_NAME] [start|stop|restart|status]"
    exit 1
}

# 检查程序是否在运行
is_exist(){
        # 获取PID
        PID=$(ps -ef |grep ${APP_NAME} | grep -v $0 |grep -v grep |awk '{print $2}')
        # -z "${pid}"判断pid是否存在,如果不存在返回1,存在返回0
        if [ -z "${PID}" ]; then
                # 如果进程不存在返回1
                return 1
        else
                # 进程存在返回0
                return 0
        fi
}

# 定义启动程序函数
start(){
        is_exist
        if [ $? -eq "0" ]; then
                echo "${APP_NAME} is already running, PID=${PID}"
        else    
                #nohup java -jar ${APP_NAME} > catalina.out 2>&1 &
                cd ${APP_NAME%/*} && mkdir -p {logs,cache}
        if [ -r "startenv.sh" ];then
            echo "设置启动参数"
            chmod +x startenv.sh && . ${APP_NAME%/*}/startenv.sh
            echo $JAVA_OPTS
        fi
                
        #java $JAVA_OPTS -jar ${APP_NAME} &
        nohup java $JAVA_OPTS -jar ${APP_NAME} > logs/catalina.out 2>&1 &
        #nohup java $JAVA_OPTS -jar ${APP_NAME} > /dev/null &2>1 &
                #nohup java $JAVA_OPTS -jar ${APP_NAME} > /dev/null &
        PID=$(echo $!)
                echo "${APP_NAME} start success, PID=$!"
        #exit 0
        fi
}

# 停止进程函数
stop(){
        is_exist
        if [ $? -eq "0" ]; then
                kill -15 ${PID}
                echo "${APP_NAME} process stop, PID=${PID}"
        sleep 6
        else   
                echo "There is not the process of ${APP_NAME}"
        fi

    is_exist
        if [ $? -eq "0" ]; then
                kill -9 ${PID}
                echo "${APP_NAME} process is killed, PID=${PID}"
    else
        echo "${APP_NAME} process stop success"
    fi
}

# 重启进程函数 
restart(){
        stop
        start
}

# 查看进程状态
status(){
        is_exist
        if [ $? -eq "0" ]; then
                echo "${APP_NAME} is running, PID=${PID}"
        else    
                echo "There is not the process of ${APP_NAME}"
        fi
}

case $2 in
"start")
        start
        ;;
"stop")
        stop
        ;;
"restart")
        restart
        ;;
"status")
       status
        ;;
    *)
    usage
    ;;
esac
exit 0

环境配置文件startenv.sh

#!/bin/sh

export JAVA_OPTS="-Xnoagent -Dlogs=logs -Dcache=cache -Xloggc:logs/gc.log"

export JAVA_OPTS="$JAVA_OPTS  -Xms1024m -Xmx1024m -server"
export JAVA_OPTS="$JAVA_OPTS  -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=45 -Djava.security.egd=file:/dev/./urandom"
# 开启远程调试
export JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=25000"

Docker脚本Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim

MAINTAINER docker_maven docker_maven@email.com


RUN mkdir config logs cache

ARG JAR_FILE
ADD ${JAR_FILE} app.jar

RUN touch logs/gc.log

#COPY logback.xml config/logback.xml

COPY startenv.sh /startenv.sh
RUN chmod +x /startenv.sh
RUN sh /startenv.sh

EXPOSE 18603

#ENTRYPOINT ["/run.sh", "${JAR_FILE}" ]
ENTRYPOINT ["java","-jar","app.jar"]

docker-compose 脚本

version : '3'
services:
  service-my:
    container_name: service-my
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "50005:50000"
    restart: always
    environment:
      - TZ=Asia/Shanghai
    networks:
      - net=host

Spring Boot 项目启动管理脚本

原文:https://www.cnblogs.com/magicpose/p/11851375.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!