springboot项目中启动文件boot.sh的编写

1.在Linux中运行jar包,一般采用命令是 java -jar的形式。停止项目 还得找到项目的pid 然后kill -9 pid 去执行,本文章主要编写启动服务中的常用命令用启动文件来执行。

哈哈,来吧,我们来编写启动文件,先创建一个boot.sh文件,以下为文件内容:

# spring  boot jar 快速脚本

#strart 启动

#stop 停止

#restart 重启

#status 状态

#log 打印控制台日志

set -e 

APPLICATION_JAR="@build.finalName@.jar"

#bin目录绝对路径

BIN_PATH=$(cd `dirname $0`; pwd)

#进入bin目录

cd $(dirname "$0")  || exit

#返回到上一级项目根目录

cd ..

#打印项目根目录绝对路径

# ·pwd· 执行系统命令并获取结果

BASE_PATH=$(pwd)

#获取服务pid

application_pid() {

echo $(ps aux | grep $APPLICATION_JAR | grep -v grep | awk '{ print $2 }')

}

#服务启动指令

start() {

pid=${application_pid}

if [ -n "$pid"]

        then

        echo "$APPLICATION_JAR is already running (pid: $pid)"

        else

#外部配置文件绝对目录,如果是目录需要/结尾,也可以直接指定文件

#如果指定的是目录,spring则会读取目录中的所有配置文件

CONFIG_DIR=${BASE_PATH}"/config/"

#项目日志输出绝对路径 console.log是我log4j生成的日志文件名

LOG_DIR=${BASE_PATH}"/logs"

CONSOLE_LOG="${LOG_DIR}/console.log"

#如果logs文件夹不存在,则创建文件夹

if [[ ! -d "${LOG_DIR}" ]]; then

mkdir "${LOG_DIR}"

fi

#当前时间

NOW_PRETTY=$(date +'%Y-%m-%d %H:%M:%S')

#启动日志

STARTUP_LOG="============= ${NOW_PRETTY} ============="

JAVA_OPT="-server -Xms1g -Xms1g -Xmn512m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=256m"

JAVA_OPT="{JAVA_OPT} -XX:-OmitStackTraceInFastThrow"

#输出项目根目录

STARTUP_LOG="${STARTUP_LOG}application root path: ${BASE_PATH}\n"

#输出jar包名称

STARTUP_LOG="${STARTUP_LOG}application jar name: ${APPLICATION_JAR}\n"

#输出bin路径

STARTUP_LOG="${STARTUP_LOG}application bin path: ${BIN_PATH}\n"

#输出项目config路径

STARTUP_LOG="${STARTUP_LOG}application config path: ${CONFIG_DIR}\n"

#打印日志路径

STARTUP_LOG="${STARTUP_LOG}application log path: ${CONSOLE_LOG}\n"

#打印JVM配置

STARTUP_LOG="${STARTUP_LOG}application JAVA_OPT : ${JAVA_OPT}\n"

#打印启动命令

STARTUP_LOG="${STARTUP_LOG}application startup command: nohup java ${JAVA_OPT} -jar  ${BASE_PATH}/boot/${APPLICATION_JAR} --spring.config.location=${CONFIG_DIR} >/dev/null 2>&1 &\n"

#打印启动日志

echo -e "$STARTUP_LOG" >> "${CONSOLE_LOG}"

#执行启动命令:后台启动项目,并将日志输出到项目根目录下的logs文件夹下

nohup java ${JAVA_OPT} -jar ${BASE_PATH}/boot/${APPLICATION_JAR} --srspring.config.location=${CONFIG_DIR} >/dev/null 2>&1 &

#前台打印日志

 tail -f "${CONSOLE_LOG}"

fi

return 0

}

#停止服务命令

stop() {

pid=${application_pid}

if [ -n "$pid"]

        then

        echo "Stopping $APPLICATION_JAR"

        kill -9 $pid 

      else

        echo "APPLICATION_JAR" is not running"

fi

return 0

}

#重新启动命令

restart() {

stop

sleep 2

start

}

#打印日志命令

log() {

tail -f -n 100 $BASE_PATH/logs/console.log

}

case $1 in

start)

start;;

stop)

stop;;

restart)

restart;;

log)

log;;

*)

echo -e "\033[0;31m Usage: \033[0m  \033[0;34m sh $0 [start|stop|restart|log] \033[0m

\033[0;31m Example: \033[0m

        \o33[0;33m sh $0 status \033[0m"

esac

总结:以上就是启动文件boot.sh的全部内容了,配置好后,在linux环境中部署好服务后,只需到服务的bin目录下找到boot.sh文件, 执行./boot.sh restart 就是重新启动服务,执行./boot.sh log 就是查看最近100行日志。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值