Spring Boot 内嵌启动脚本配置(Customizing
2017-05-30 本文已影响813人
非典型程序员
对于大多数人来说,使用内嵌启动脚本的默认配置通常就足够了。 如果您发现默认配置无法满足我们的需求时,则可以编写 .conf 配置文件对某些选项进行自定义。由Maven或Gradle插件生成的默认嵌入式启动脚本在很多方面(in a number of ways)是可以进行自定义的。
配置选项
你可以将以下配置写入环境变量或使用.conf 配置文件。
# 运行“模式”。 默认值取决于jar的构建方式,但通常是auto
#(通过检查它是否是名为init.d的目录中的符号链接来尝试猜测它是否为init脚本)。
# 可以显式地将其设置为服务,以便stop | start | status | restart命令可以正常运行。
MODE=service
# 如果 start-stop-daemon 指令可用,且 USE_START_STOP_DAEMON 值为 true,则使用该命令控制进程 。改选项默认为true。
USE_START_STOP_DAEMON=true
# 进程 PID 文件的根目录,默认值 /var/run
PID_FOLDER= /var/run
# 进程日志文件的根目录, 默认值/var/log
LOG_FOLDER=/var/log
# 配置文件目录,默认跟 jar 文件放置一起 (该属性只适用于环境变量).
CONF_FOLDER=/opt/myapp
# 日志文件名称,默认为 <appname>.log
LOG_FILENAME=myapp.log
# 应用名称。如果使用文件符号链接来运行 jar 应用,则可以应用名称可以猜测得来,否则应该显示的指定 APP_NAME
APP_NAME=myapp
# Spring Boot 运行参数(application.properties 里面的参数都可以在这里配置)
RUN_ARGS="--poot=8181 --context-path=/spring-boot-ex/"
# Java 命令的完整路径。Java指令的查找顺序:
# if [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]]; then
# javaexe="$JAVA_HOME/bin/java"
# elif type -p java > /dev/null 2>&1; then
# javaexe=$(type -p java)
# elif [[ -x "/usr/bin/java" ]]; then
# javaexe="/usr/bin/java"
# else
# echo "Unable to find Java"
# exit 1
# fi
JAVA_HOME=/usr/local/jdk1.7
# JVM 运行参数
JAVA_OPTS="-Xmx1024M -Xms200m -XX:MaxPermSize=200m -XX:PermSize=100m"
# 显示的指定 jar 应用文件的路径 ,这样做的目的是为了应对启动脚本和 jar文件分离的场景,也就是启动脚本并没有内嵌到 jar 文件中。(此配置也只能写入环境变量,不能写入配置文件)
JARFILE=/opt/spring-boot-ex/myapp.jar
# 是否开启启动 DEBUG 模式,以便于跟踪启动脚本的指令执行。(该变量只能写入环境变量)
# 源码:[[ -n "$DEBUG" ]] && set -x
DEBUG=true
# 在强制关闭之前停止应用程序等待的时间,默认60,单位秒
STOP_WAIT_TIME=60
NOTE
PID_FOLDER,LOG_FOLDER和LOG_FILENAME变量只对init.d服务有效。 使用systemd,使用“service’”脚本进行相同的定制,配置详情请查看 service unit configuration man page
有些配置所以需要写入环境变量,其他可以写入配置文件,这是因为有些配置需要在启动脚本运行初期就确定,而写入配置文件的是因为脚本在执行的过程执行 source 命令后
变可以从环境当中获取。
配置文件于 jar 文件应该同一目录,并且名称相同,但后缀为.conf而不是.jar。 例如,名为/var/myapp/myapp.jar的jar将使用名为/var/myapp/myapp.conf的配置文件。