微服务架构之Spring Boot(八十七)

2022-05-23 15:48:05 浏览数 (1)

64.2.2作为 systemd 服务安装

systemd 是System V init系统的后继者,现在被许多现代Linux发行版使用。虽然您可以继续将 init.d 脚本与 systemd 一起使用,但也可以使

用 systemd 'service'脚本启动Spring Boot应用程序。

假设您在 /var/myapp 中安装了Spring Boot应用程序,要将Spring Boot应用程序安装为 systemd 服务,请创建名为 myapp.service 的脚本并

将其放在 /etc/systemd/system 目录中。以下脚本提供了一个示例:

[Unit]

Description=myapp

After=syslog.target

[Service]

User=myapp

ExecStart=/var/myapp/myapp.jar

SuccessExitStatus=143

[Install]

WantedBy=multi-user.target

重要

请务必更改应用的 Description , User 和 ExecStart 字段。

ExecStart 字段未声明脚本操作命令,这意味着默认情况下使用 run 命令。

请注意,与作为 init.d 服务运行时不同,运行应用程序的用户,PID文件和控制台日志文件由 systemd 本身管理,因此必须使用''中的相应字段

进行配置。服务'脚本。有关更多详细信息,请参阅 服务单元配置手册页。

要将应用程序标记为在系统引导时自动启动,请使用以下命令:

$ systemctl enable myapp.service

有关详细信息,请参阅 man systemctl 。

64.2.3自定义启动脚本

Maven或Gradle插件编写的默认嵌入式启动脚本可以通过多种方式进行自定义。对于大多数人来说,使用默认脚本和一些自定义通常就足够了。

如果您发现无法自定义所需内容,请使用 embeddedLaunchScript 选项完全编写自己的文件。

写入时自定义启动脚本

在将脚本写入jar文件时自定义启动脚本的元素通常是有意义的。例如,init.d脚本可以提供“描述”。由于您事先了解了描述(并且不需要更

改),因此您可以在生成jar时提供它。

要自定义书面元素,请使用Spring Boot Maven插件的 embeddedLaunchScriptProperties 选项或Spring Boot Gradle插件 launchScript

的 properties 属性。

它运行时自定义脚本

对于在编写jar 后需要自定义的脚本项,可以使用环境变量或配置文件。

默认脚本支持以下环境属性:

变量 描述

MODE 操作的“模式”。默认值取决于jar的构建方式,但通常是 auto (意味着它通过检查它是否是名为 init.d 的

目录中的符号链接来尝试猜测它是否是init脚本)。如果要在前台运行脚本,可以

将 stop|start|status|restart 命令显式设置为 service 或 run 。

USE_START_STOP_DAEMON start-stop-daemon 命令是否可用,应该用于控制进程。默认为 true 。

除 JARFILE 和 APP_NAME 之外,可以使用 .conf 文件配置上一节中列出的设置。该文件应该位于jar文件的旁边,并且具有相同的名称,但后缀

为 .conf 而不是 .jar 。例如,名为 /var/myapp/myapp.jar 的jar使用名为 /var/myapp/myapp.conf 的配置文件,如以下示例所示:

myapp.conf。

JAVA_OPTS=-Xmx1024M

LOG_FOLDER=/custom/log/folder

如果您不喜欢在jar文件旁边有配置文件,可以设置 CONF_FOLDER 环境变量来自定义配置文件的位置。

0 人点赞