Linux系列:编写 jar包 启动脚本

包含指定环境  启动的脚本。

(指定springBoot的 application.properties)

 创建 start.sh 文件,文件内容如下:

1、直接启动

#!/bin/sh
#该脚本为Linux下启动java程序的
###################################
#!!!!!!! $1第一个参数为方法名start|stop|restart|status 
# $2第二个参数为jar包全称
#初始化psid变量(全局)
#函数内想用shell脚本外部传入的参数必须在函数方法体外声明才能使用
psid=0
jar=$2

checkpid() {
   javaps=`jps -l | grep $jar`
   if [ -n "$javaps" ]; then
      psid=`echo $javaps | awk '{print $1}'`
   else
      psid=0
   fi
}

###################################
#(函数)启动程序

start() {
   checkpid
   if [ $psid -ne 0 ]; then
      echo "================================"
      echo "FBI warning你个老六: $jar already started! (pid=$psid)"
      echo "================================"
   else
      echo "开始启动 $jar..."
      `nohup java -jar $jar >/dev/null 2>& 1 &`
      checkpid
      if [ $psid -ne 0 ]; then
         echo "FBI Warning你个老六,jar包启动成功!"
      else
         echo "FBI Warning你个老六,jar包启动失败!"
      fi
   fi
}

###################################
#(函数debug模式)启动程序

debug() {
   checkpid
   if [ $psid -ne 0 ]; then
      echo "================================"
      echo "FBI warning你个老六: $jar already started! (pid=$psid)"
      echo "================================"
   else
      echo "开始启动 $jar..."
      `nohup java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 $jar >/dev/null 2>& 1 &`
      checkpid
      if [ $psid -ne 0 ]; then
         echo "FBI Warning你个老六,jar包启动成功!"
      else
         echo "FBI Warning你个老六,jar包启动失败!"
      fi
   fi
}

###################################
#(函数)停止程序
stop() {
   checkpid

   if [ $psid -ne 0 ]; then
      echo  "正在 stopping $jar.... "
      `kill -9 $psid`
      if [ $? -eq 0 ]; then
         echo "service $jar stop success"
      else
         echo "service $jar stop fail"
      fi
   else
      echo "================================"
      echo "warn: $jar is not running"
      echo "================================"
   fi
}

###################################
#(函数)检查程序运行状态
status() {
   checkpid

   if [ $psid -ne 0 ];  then
      echo "$jar is running! (pid=$psid)"
   else
      echo "$jar is not running"
   fi
}

###################################
#读取脚本的第一个参数($1),进行判断
#参数取值范围:{start|stop|restart|status|info}
#如参数不在指定范围之内,则打印帮助信息
###################################
case "$1" in
   'start')
      start
      ;;
   'stop')
     stop
     ;;
   'restart')
     stop
     start
     ;;
   'redebug')
     stop
     debug
     ;;
   'status')
     status
     ;;
esac

启动指令为:  ./start.sh start xxxx.jar

停止服务:     ./start.sh stop xxxx.jar

nohup 启动的相关参数,可自行添加。

注意,新建的 .sh文件 需分配权限,可以使用 chmod 755 xxx.sh 指令

2、指定配置文件启动。

     如项目中,application-dev.properties 文件,则使用dev

     只修改  start 函数

start() {
   checkpid
   if [ $psid -ne 0 ]; then
      echo "================================"
      echo "FBI warning你个老六: $jar already started! (pid=$psid)"
      echo "================================"
   else
      echo "开始启动 $jar..."
      `nohup java -jar $jar --spring.profiles.active=$active >/dev/null 2>& 1 &`
      checkpid
      if [ $psid -ne 0 ]; then
         echo "FBI Warning你个老六,jar包启动成功!"
      else
         echo "FBI Warning你个老六,jar包启动失败!"
      fi
   fi
}

如若 上:

启动指令为:    ./start.sh start xxxx.jar dev    (dev为对应的坏境的)

停止服务:      ./start.sh stop xxxx.jar

spring.profiles.active=  指定要加载的配置文件,也可以直接写死

注意,.sh文件 需分配权限,可以使用 chmod 755 xxx.sh 指令

3、使用 加载外部的配置文件启动。

     配置文件放在指定文件夹中,如若修改 application.properties。不需要重打包

     只修改  start 函数

start() {
   checkpid
   if [ $psid -ne 0 ]; then
      echo "================================"
      echo "FBI warning你个老六: $jar already started! (pid=$psid)"
      echo "================================"
   else
      echo "开始启动 $jar..."
      `nohup java -Dspring.config.additional-location=file:/apphome/bers/java/dyh/application.properties -jar $jar >/dev/null 2>& 1 &`
      checkpid
      if [ $psid -ne 0 ]; then
         echo "FBI Warning你个老六,jar包启动成功!"
      else
         echo "FBI Warning你个老六,jar包启动失败!"
      fi
   fi
}

我把配置文件放在 /apphome/bers/java/dyh/application.properties。

指定配置文件启动

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值