Springboot项目启动脚本

#!/bin/bash

CURRENTPATH=`cd \`dirname $0\`\/..; pwd`
#需注意如项目根目录下包含多个.jar文件则不可用
cd $CURRENTPATH
JARFILE=$(ls -l |grep  .jar$ | awk '{print$9}')
FILEPATH=$CURRENTPATH"/"$JARFILE

# 堆内存设置
JAVA_OPTS="-Xms2g -Xmx2g"

#NewRatio young与old比例, SurvivorRatio eden与survivor比例
JAVA_OPTS="$JAVA_OPTS -XX:NewRatio=4 -XX:SurvivorRatio=4 "
#如若持久代空间不足,可指定
#JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=128m"
#jdk8元数据空间代替永久代,默认20m左右,如若达到触发FullGC,因此如class过大可设置
#JAVA_OPTS="$JAVA_OPTS -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m "

# GC 信息打印
#JAVA_OPTS="$JAVA_OPTS -Xloggc:./logs/gc/gc_%p.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps"
#JVM发生OOM时,DUMP文件
#JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./logs/gc/heap_%p.hprof"
#JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=9555,server=y,suspend=n"

# 使用说明
help() {
	echo "help: start.sh start|stop|restart|exist"
}

start() {
  #输出项目进程的pid
  PID=$(ps -ef|grep "$FILEPATH" | grep -v grep |awk '{printf $2}')
  if [ ! -n "$PID" ]; then
    echo "pid is null"
    nohup java $JAVA_OPTS -jar $FILEPATH > /dev/null 2>&1 &
    echo $JARFILE is started
  else
    echo "project is running,pid is "${PID}
  fi
}

stop() {
  PID=$(ps -ef|grep "$FILEPATH" | grep -v grep |awk '{printf $2}')
  if [ ! -n "$PID" ]; then
    echo $JARFILE is already stopped
  else
    kill -9 $PID
    echo $JARFILE is stopped
  fi
}

restart() {
  echo stopping $JARFILE
  stop
  echo start $JARFILE
  start
}

exist() {
  PID=$(ps -ef|grep "$FILEPATH" | grep -v grep |awk '{printf $2}')
  if [ ! -n "$PID" ]; then
    echo $JARFILE is stopped
  else
    echo $JARFILE is running, PID is $PID
  fi
}

case $1 in
  'start')
    start
  ;;
  'stop')
    stop
  ;;
  'restart')
    restart
  ;;
  'exist')
    exist
  ;;
  *)
    help
  ;;
esac

上述只是一个简单的demo,尚未完善,建议可参考rocketmq的启动脚本编写自己服务的启动脚本

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值