spring boot 通过脚本启动时,配置文件与启动脚本

Spring boot默认使用项目包内配置文件,如果需要使用外部配置文件参见如下优先级:

第一种是在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下;
第二种是直接把配置文件放到jar包的同级目录;
第三种在classpath下建一个config文件夹,然后把配置文件放进去;
第四种是在classpath下直接放配置文件。

这四种方式的优先级是从一到四一次降低的。

这里有一个坑:一二两种方案其实不是jar包的同级目录,而是(执行启动指令的)同级目录。为了便于理解我把上面的当前目录说成jar包的同级目录,这种说法并不对。

如此,如果使用脚本启动,则不能直接写全地址去启动,而是要先CD到相应目录再启动;

附配置文件:

APP_PATH=/usr/local/application/juheApi
APP_NAME=juheApi-0.0.1-SNAPSHOT.jar

#使用说明,用来提示输入参数
usage() {
    echo "Usage: sh 执行脚本.sh [start appPath appName|stop appPath appName|restart appPath appName|status appPath appName]"
    exit 1
}
 
#检查程序是否在运行
is_exist(){

  #pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
pid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v /bin/bash|awk '{print $2}'`
  #如果不存在返回1,存在返回0     
  if [ -z "${pid}" ]; then
   return 1
  else
    return 0
  fi
}
 
#启动方法
start(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is already running. pid=${pid} ."
  else
    echo "${APP_NAME} is starting"
#    nohup java -Xms3072m -Xmx3072m  -jar -Duser.timezone=GMT+08  $APP_NAME > /dev/null 2>&1 &
# nohup java -jar -Duser.timezone=GMT+08  $APP_NAME > /dev/null 2>&1 &
   source /etc/profile
	if [ $? -eq 0 ]; then
		echo "====Source java path is  ok!===="
		cd $APP_PATH
		nohup  java -jar -Duser.timezone=GMT+08  $APP_NAME > /dev/null 2>&1 &
		java -version
	else
		echo "====Source java path is failed!===="
		
	fi
  fi
}
 
#停止方法
stop(){
  is_exist
  if [ $? -eq "0" ]; then
    kill -9 $pid
  else
    echo "${APP_NAME} is not running"
  fi  
}
 
#输出运行状态
status(){
  is_exist
  if [ $? -eq "0" ]; then
    echo "${APP_NAME} is running. Pid is ${pid}"
  else
    echo "${APP_NAME} is NOT running."
  fi
}
 
#重启
restart(){
  stop
  start
}
 
if [ ! -n "$1" ];then
    usage
    exit 1
fi
if [ ! -n "$2" ];then
    usage
    exit 1
fi
if [ ! -n "$3" ];then
    usage
    exit 1
fi

APP_PATH="$2"

APP_NAME="$3"

#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
  "start")

    start
    ;;
  "stop")
    stop
    ;;
  "status")
    status
    ;;
  "restart")
    restart
    ;;
  *)
    usage
    ;;
esac

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot项目中,我们可以使用bash脚本启动Linux服务器上的应用程序。 首先,我们需要编写一个启动脚本,可以创建一个以.sh为后缀的文件,例如start.sh。然后,我们可以使用vi或其他文本编辑器打开脚本文件。 在脚本文件中,我们需要配置一些环境变量和启动参数。首先,我们需要设置JAVA_HOME,表示Java的安装目录,例如: ``` export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 ``` 接下来,我们需要设置应用程序的一些参数,比如应用程序的JAR包路径、日志文件路径等。在Spring Boot项目中,我们可以使用以下命令来启动项目: ``` java -jar /path/to/your/springbootapp.jar ``` 请将"/path/to/your/springbootapp.jar"替换为实际的JAR包路径。 最后,我们可以使用nohup命令将应用程序以后台模式启动,并将输出信息重定向到一个日志文件中。例如: ``` nohup java -jar /path/to/your/springbootapp.jar > /path/to/your/log/file.log & ``` 请将"/path/to/your/log/file.log"替换为实际的日志文件路径。 保存并退出脚本文件。然后,我们需要给脚本文件添加可执行权限,使用以下命令: ``` chmod +x start.sh ``` 现在,我们可以运行启动脚本启动Spring Boot应用程序了: ``` ./start.sh ``` 脚本会自动配置所需的环境变量和启动参数,并将应用程序以后台模式启动。你可以通过tail命令查看日志文件来确认应用程序是否成功启动。例如: ``` tail -f /path/to/your/log/file.log ``` 以上就是在Linux服务器上使用启动脚本启动Spring Boot项目的简单步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值