サービスとしてのSpring Bootアプリケーション。システムV初期化

サービスとしてのSpring Bootアプリケーション。システムV初期化

Ubuntu 16.04でSpring Bootアプリケーションをサービスとして実行したいと思います。実行可能なJARファイルへのシンボリックリンクを作成しました。

$ sudo ln -s /home/canperis/core-price-update/menu-core-prices-update-0.0.1-SNAPSHOT.jar \
    /etc/init.d/menu-core-prices-update

$ sudo service menu-core-prices-update start

しかし、次のエラーが発生しました。

menu-core-prices-update.service を起動できません。ユニット menu-core-prices-update.service が見つかりません。

ベストアンサー1

Ubuntuを参照して以来、ほとんどの最新バージョンはsystemdをサポートしています。 systemdを使用して同様のものを設定するには、systemdユニットファイルを作成して有効にする必要があります。

1. ソフトウェア

ソフトウェアを配置する場所を決定することから始めます。私はお勧めします/opt/core-price-update

このような:

$ tree /opt/menu-core-prices-update/
/opt/menu-core-prices-update/
├── application.conf
└── menu-core-prices-update-0.0.1-SNAPSHOT.jar

0 directories, 2 files

2.systemdユニットファイル

次に、次のようにsystemdユニットファイルを作成します。

$ cat /etc/systemd/system/menu-core-prices-update.service
[Unit]
Description=Menu Core Prices Update Daemon
After=network.target

[Service]
Environment="APP_CP=/opt/menu-core-price-update"
Environment="JAVA_HOME=/usr/java/latest"
Environment="APP_NAME=com.myapps.MenuCorePriceUpdate"
Environment="APP_NAME_JPROP=appname=menu-core-price-update"
Environment="CONFIG_FILE=/opt/menu-core-price-update/application.conf"
Environment="LOGPATH=/var/log/menu-core-price-update"
ExecStartPre=/bin/mkdir -pm 0755 ${LOGPATH}
ExecStart=/bin/bash -c "$JAVA_HOME/bin/java -D${APP_NAME_JPROP} -cp ${APP_CP} ${APP_NAME}"
PIDFile=/run/core-price-update/menu-core-price-update%i.pid
Restart=on-abort
RuntimeDirectory=menu-core-price-update
RuntimeDirectoryMode=755
WorkingDirectory=/opt/menu-core-price-update

[Install]
WantedBy=multi-user.target

3. サービスの有効化

再起動の間にこのサービスを実行するには、次の手順を実行します。

$ sudo systemctl enable --now menu-core-prices-update

引用する

おすすめ記事