在脚本生成时自定义

    自定义写入jar文件的启动脚本元素是有意义的,例如,为init.d脚本提供description,既然知道这会展示到前端,你可能会在生成jar时提供它。

    为了自定义写入的元素,你需要为Spring Boot Maven或Gradle插件指定embeddedLaunchScriptProperties选项。

    在脚本运行时自定义

    对于需要在jar文件生成后自定义的项目,你可以使用环境变量或配置文件。

    默认脚本支持以下环境变量:

    变量 描述
    MODE 操作的模式,默认值依赖于jar构建方式,通常为auto(意味着它会尝试通过检查它是否为init.d目录的软连接来推断这是不是一个init脚本)。你可以显式将它设置为service,这样`stop start status restart命令就可以工作了,或如果你只是想在前台运行该脚本那只需run`
    USE_START_STOP_DAEMON 如果start-stop-daemon命令可用,它将被用来控制该实例,默认为true
    PID_FOLDER pid文件夹的根目录(默认为/var/run
    LOG_FOLDER 存放日志文件的文件夹(默认为/var/log
    CONF_FOLDER 读取.conf文件的文件夹
    LOG_FILENAME 存放于的日志文件名(默认为<appname>.log
    APP_NAME 应用名,如果jar运行自一个软连接,脚本会猜测它的应用名。如果不是软连接,或你想显式设置应用名,这就很有用了
    RUN_ARGS 传递给程序的参数(Spring Boot应用)
    JAVA_HOME 默认使用PATH指定java的位置,但如果在$JAVA_HOME/bin/java有可执行文件,你可以通过该属性显式设置
    JAVA_OPTS JVM启动时传递的配置项
    JARFILE 在脚本启动没内嵌其内的jar文件时显式设置jar位置
    DEBUG 如果shell实例的-x标识有设值,则你能轻松看到脚本的处理逻辑

    如果JARFILEAPP_NAME出现异常,上面的设置可以使用一个.conf文件进行配置。该文件预期是放到跟jar文件临近的地方,并且名字相同,但后缀为.conf而不是.jar。例如,一个命名为/var/myapp/myapp.jar的jar将使用名为/var/myapp/myapp.conf的配置文件:

    myapp.conf

    如果不喜欢配置文件放到jar附近,你可以使用环境变量指定文件的位置。