Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
36
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@uenosy

SpringBoot アプリをサービスとして動かす方法

概要

  1. Fully Executable Jarの作成
  2. confファイルの作成
  3. サービス登録

1. Fully Executable Jarの作成

Fully Executable Jarという形式のJarにするとJarの先頭にスクリプトをつけて出力してくれる。
このスクリプトがそのままサービス起動用のスクリプトとして使用できる。

作成の仕方は、pom.xmlの<build>タグの中身を次のようにする

pom.xml
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <executable>true</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

<executable>true</executable>がキモ

2. confファイルの作成

実行するJarファイルと同名で拡張子だけ.confに変えたファイルを作成する。
内容は環境変数の定義とjavaに渡すオプションとjarに渡す実行時引数。

環境変数は普通にexport

export LANG="ja_JP.UTF8"

javaのオプションはJAVA_OPTS

JAVA_OPTS="-Xms1024M -Xmx1024M"

実行時引数はRUN_ARGS

RUN_ARGS="--spring.profiles.active=production"

サービス登録

CentOS7などのsystemdでは/etc/systemd/system/にserviceファイルを作成すればOK

/etc/systemd/system/hoge.service
[Unit]
Description = <サービスの説明>

[Service]
ExecStart = /home/application/hoge.jar
Restart = always
Type = simple
User = application
Group = application
SuccessExitStatus = 143

[Install]
WantedBy = multi-user.target

これで

$ sudo systemctl start hoge

とかができる

36
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
36
Help us understand the problem. What is going on with this article?