springboot项目开机一键启动脚本

一、基础服务:

  • Mysql
  • Redis
  • Mongodb
  • Ftp
  • Rabbitmq
  • nginx

注:基础服务采用docker-compose安装,开机自启,从略。

二、应用服务

  1. eureka
  2. gateway
  3. bdm
  4. hvc
  5. lvc

开机执行一键启动脚本,脚本如下:

#!/bin/bash
# description: auto_run_jar
# author: freedom

# 程序基本路径 
BASE_PATH="/home/riva2/ispd-2.8"
# 刷新环境变量
source /etc/profile
# 启动方法
start() {
    # 启动程序
    echo "$(date "+%Y-%m-%d %H:%M:%S") starting $JAR_NAME ........."
    nohup java -jar -Xms512m -Xmx512m -Dlog4j2.formatMsgNoLookups=true -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=$ADDRESS -Dfile.encoding=UTF-8 -Dcas.standalone.config=$CONFIG_PATH $JAR_NAME > $LOG_FILE 2>&1 &
    # 查询日志检测java程序是否启动成功
    echo "$(date "+%Y-%m-%d %H:%M:%S") checking if $JAR_NAME started ..."
    while [ -f $LOG_FILE ]
    do
################ NOTE: update grep patern by ur apps !!!
        result=`grep "$STARTED_MARK" $LOG_FILE`
        if [[ "$result" != "" ]]
        then
            echo "$(date "+%Y-%m-%d %H:%M:%S") springboot start $JAR_NAME ..."
            break
        else
            echo "$(date "+%Y-%m-%d %H:%M:%S") waiting for start $JAR_NAME ..."
            sleep 10s
        fi
    done
 
    echo "$(date "+%Y-%m-%d %H:%M:%S") $JAR_NAME started success."
}

startEureka() {
    # 启动程序
    echo "$(date "+%Y-%m-%d %H:%M:%S") starting $JAR_NAME ........."
    nohup java -jar $JAVA_OPTS -server -XX:+TieredCompilation -XX:+UseSerialGC -XX:+PrintGCDateStamps -Xloggc:/data/rubbish.log -XX:+PrintGCDetails -Xms300m -Xmx500m $JAR_NAME > $LOG_FILE 2>&1 &
    # 查询日志检测java程序是否启动成功
    echo "$(date "+%Y-%m-%d %H:%M:%S") checking if $JAR_NAME started ..."
    while [ -f $LOG_FILE ]
    do
################ NOTE: update grep pattern by ur apps !!!
        result=`grep "$STARTED_MARK" $LOG_FILE`
        if [[ "$result" != "" ]]
        then
            echo "$(date "+%Y-%m-%d %H:%M:%S") springboot start $JAR_NAME ..."
            break
        else
            echo "$(date "+%Y-%m-%d %H:%M:%S") waiting for start $JAR_NAME ..."
            sleep 10s
        fi
    done
 
    echo "$(date "+%Y-%m-%d %H:%M:%S") $JAR_NAME started success."
}

startGateway() {
    # 启动程序
    echo "$(date "+%Y-%m-%d %H:%M:%S") starting $JAR_NAME ........."
    nohup java -jar -Dfile.encoding=UTF-8 -Dcas.standalone.config="$CONFIG_PATH" "$JAR_NAME" > $LOG_FILE 2>&1 &
    # 查询日志检测java程序是否启动成功
    echo "$(date "+%Y-%m-%d %H:%M:%S") checking if $JAR_NAME started ..."
    while [ -f $LOG_FILE ]
    do
################ NOTE: update grep pattern by ur apps !!!
        result=`grep "$STARTED_MARK" $LOG_FILE`
        if [[ "$result" != "" ]]
        then
            echo "$(date "+%Y-%m-%d %H:%M:%S") springboot start $JAR_NAME ..."
            break
        else
            echo "$(date "+%Y-%m-%d %H:%M:%S") waiting for start $JAR_NAME ..."
            sleep 10s
        fi
    done
 
    echo "$(date "+%Y-%m-%d %H:%M:%S") $JAR_NAME started success."
}
# 停止方法
stop() {
    echo "$(date "+%Y-%m-%d %H:%M:%S") stopping $JAR_NAME ........."

    ID=`ps -ef | grep "$JAR_NAME" | grep -v "$0" | grep -v "grep" | grep -v stop| awk '{print $2}'`
    echo "start kill pid: $ID..."
    for id in $ID
    do
    kill $id
    echo "killed $id"
    done
 
    # 查看程序是否已停止
    echo "$(date "+%Y-%m-%d %H:%M:%S") checking if stopped ..."
    while true
    do
        count=`ps -ef | grep "$JAR_NAME" | grep -v "grep"`
        if [ "$?" != "0" ]
        then
        # 程序已停止
        echo "$(date "+%Y-%m-%d %H:%M:%S") $JAR_NAME stopped success."
        break
        else
        # 程序仍在运行
        echo "$(date "+%Y-%m-%d %H:%M:%S") > waiting for stop..."
        fi
        sleep 5s
    done
}

#########################################################################################################
#eureka 程序名
JAR_NAME="spd-eureka-config.jar"
JAR_PATH=$BASE_PATH"/eureka"
LOG_FILE=$JAR_PATH"/nohup.out"
STARTED_MARK="Started Eureka Server"
# change dir
cd $JAR_PATH
stop
startEureka

# gateway启动
JAR_NAME="spd-gateway.war"
JAR_PATH=$BASE_PATH"/gateway"
CONFIG_PATH=$JAR_PATH"/config"
LOG_FILE=$JAR_PATH"/nohup.out"
# 按自己日志成功标识修改
STARTED_MARK="Started GatewayApp"

# change dir
cd $JAR_PATH
stop
startGateway

#########################################################################################################
# bdm
JAR_NAME="spd-bdm-2.8.12.1.5.war"
JAR_PATH=$BASE_PATH"/ispd-bdm"
CONFIG_PATH=$JAR_PATH"/config"
LOG_FILE=$JAR_PATH"/nohup.out"
ADDRESS=8400
STARTED_MARK="Started SpdBdmApplication"
# change dir
cd $JAR_PATH
stop
start
#########################################################################################################
# hvc-hosp
JAR_NAME="spd-hvc-hosp-2.8.12.1.5.war"
JAR_PATH=$BASE_PATH"/ispd-hvc-hosp"
CONFIG_PATH=$JAR_PATH"/config"
LOG_FILE=$JAR_PATH"/nohup.out"
ADDRESS=8401
STARTED_MARK="Started SpdHvcApplication"
# change dir
cd $JAR_PATH
stop
start

#########################################################################################################
# hvc-dept
JAR_NAME="spd-hvc-dept-2.8.12.1.7.war"
JAR_PATH=$BASE_PATH"/ispd-hvc-dept"
CONFIG_PATH=$JAR_PATH"/config"
LOG_FILE=$JAR_PATH"/nohup.out"
ADDRESS=8407
# change dir
cd $JAR_PATH
stop
start

########################################################################################################
# lvc-hosp
JAR_NAME="spd-lvc-hosp-2.8.12.1.5.war"
JAR_PATH=$BASE_PATH"/ispd-lvc-hosp"
CONFIG_PATH=$JAR_PATH"/config"
LOG_FILE=$JAR_PATH"/nohup.out"
ADDRESS=8406
STARTED_MARK="Started SpdLvcApplication"
# change dir
cd $JAR_PATH
stop
start

#########################################################################################################
# lvc-dept
JAR_NAME="spd-lvc-dept-2.8.12.1.5.war"
JAR_PATH=$BASE_PATH"/ispd-lvc-dept"
CONFIG_PATH=$JAR_PATH"/config"
LOG_FILE=$JAR_PATH"/nohup.out"
ADDRESS=8408
# change dir
cd $JAR_PATH
stop
start

Hadoop是一个开源的分布式计算框架,用于处理大规模数据集的存储和处理。它提供了一个可靠的、可扩展的分布式系统,能够在大量普通计算机的集群上运行。为了方便用户启动Hadoop集群,开发者编写了一键启动脚本。 Hadoop一键启动脚本的作用是简化Hadoop集群的启动过程。用户只需要运行这个脚本,就能够自动完成所有必要的设置和启动步骤,而不需要手动逐一执行命令和配置文件。一键启动脚本通常会检查系统环境和配置文件,确保一切准备就绪,然后根据用户的需求启动特定的Hadoop服务和组件。 一键启动脚本通常包括以下几个主要步骤: 1. 检查系统依赖:脚本会检查系统环境,包括操作系统、Java版本等,确保满足Hadoop运行的最低要求。 2. 配置文件检查:脚本会检查Hadoop配置文件,如core-site.xml、hdfs-site.xml等,确保配置正确且完整。 3. 启动服务:根据用户输入的命令,脚本启动相应的Hadoop服务,如启动HDFS、启动YARN等。在启动过程中,脚本会在终端显示详细的启动日志,方便用户查看和调试。 4. 验证启动脚本会检查Hadoop集群的启动状态,确认所有服务均已成功启动。如果有错误或异常,脚本会显示相关错误信息,并提供解决方案。 总之,Hadoop一键启动脚本能够极大地简化Hadoop集群的部署和启动过程,提高用户的使用效率和便利性。用户只需准备好必要的配置文件和环境,然后运行一键启动脚本,即可轻松启动Hadoop集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值