Spring Bootアプリケーションをシステムサービスに登録する
Spring Bootアプリケーションをシステムサービスに登録する
以前の記事では、Spring Bootのテクニックについて多く言及しましたが、Spring Bootアプリケーションを作成した後、どのように生成環境で実行しますか?元のjava-jarのみで実行すると、プログラムの頑丈性と安定性が保証されず、プログラムをサービスとして登録して使用するのが最善の方法です.
Spring BootアプリケーションをLinuxとwindowsのサービスに登録する方法について説明します.
前期準備
まず、アプリケーションを実行可能なjarパッケージにパッケージ化する必要があります.次の依存性を追加する必要があります.
ここのpackagingはjarを選択する必要があります.spring-boot-maven-pluginを追加するのは、appを実行可能なjarパッケージにパッケージするためです.
実行可能jarパッケージにパッケージ化
アプリケーションを作成したら、次のことを実行できます.
アプリケーションをパッケージ化します.ここでパッケージ化したjarパッケージの名前はspringboot-run-as-service-0.0.1-SNAPSHOT.jarです.
liunxサービスに登録
linuxでは、System V init scriptまたはSystemdプロファイルを選択できます.前者は徐々に後者に置き換えられます.
セキュリティのために、実行ユーザーを作成し、jarパッケージに対応する権限を付与する必要があります.
System V Init
ファイルリンクをinit.dディレクトリに作成します.次のようにします.
次に、アプリケーションを起動します.
サービスコマンドはstart,stop,restart,statusをサポートします.また、以下の機能も提供されています. your-appはflydeanユーザーで を起動します.プログラムが実行するpidは/var/run/your-app/your-app.pid に格納されるアプリケーションのログは/var/log/your-app.log Systemd
Systemdを使用するには、/etc/systemd/systemmにyour-app.serviceファイルを作成する必要があります.
次にsystemctl start|stop|restart|status your-appを使用してサービスを管理できます.
Upstart
Upstartはイベント駆動のサービスマネージャで、Ubuntuを使用するとデフォルトでインストールされます.
your-app.confを作成します.
Windowsでのインストール
Windowsでは、次のように多くの方法があります.
Windows Service Wrapper
Windows Service Wrapperはwinswとも呼ばれ、オープンソースソフトウェアです.winswはプロファイルyour-app.xmlと組み合わせて使用する必要があります.
winsw.exeをyour-app.exeに変更してyour-app.xmlと組み合わせて使用する必要があります.
Java Service Wrapper
Java Service Wrapperは非常に強力な構成を提供し、WindowsとLinuxの下でアプリケーションを使用することができます.興味のある学生は自分で勉強することができます.
チュートリアルの詳細については、flydeanのブログを参照してください.
以前の記事では、Spring Bootのテクニックについて多く言及しましたが、Spring Bootアプリケーションを作成した後、どのように生成環境で実行しますか?元のjava-jarのみで実行すると、プログラムの頑丈性と安定性が保証されず、プログラムをサービスとして登録して使用するのが最善の方法です.
Spring BootアプリケーションをLinuxとwindowsのサービスに登録する方法について説明します.
前期準備
まず、アプリケーションを実行可能なjarパッケージにパッケージ化する必要があります.次の依存性を追加する必要があります.
jar
org.springframework.boot
spring-boot-starter-parent
....
org.springframework.boot
spring-boot-maven-plugin
true
ここのpackagingはjarを選択する必要があります.spring-boot-maven-pluginを追加するのは、appを実行可能なjarパッケージにパッケージするためです.
実行可能jarパッケージにパッケージ化
アプリケーションを作成したら、次のことを実行できます.
mvn clean package
アプリケーションをパッケージ化します.ここでパッケージ化したjarパッケージの名前はspringboot-run-as-service-0.0.1-SNAPSHOT.jarです.
liunxサービスに登録
linuxでは、System V init scriptまたはSystemdプロファイルを選択できます.前者は徐々に後者に置き換えられます.
セキュリティのために、実行ユーザーを作成し、jarパッケージに対応する権限を付与する必要があります.
$ sudo useradd flydean
$ sudo passwd flydean
$ sudo chown flydean:flydean your-app.jar
$ sudo chmod 500 your-app.jar
System V Init
ファイルリンクをinit.dディレクトリに作成します.次のようにします.
sudo ln -s /path/to/your-app.jar /etc/init.d/your-app
次に、アプリケーションを起動します.
sudo service your-app start
サービスコマンドはstart,stop,restart,statusをサポートします.また、以下の機能も提供されています.
Systemdを使用するには、/etc/systemd/systemmにyour-app.serviceファイルを作成する必要があります.
[Unit]
Description=A Spring Boot application
After=syslog.target
[Service]
User=flydean
ExecStart=/path/to/your-app.jar SuccessExitStatus=100
[Install]
WantedBy=multi-user.target
次にsystemctl start|stop|restart|status your-appを使用してサービスを管理できます.
Upstart
Upstartはイベント駆動のサービスマネージャで、Ubuntuを使用するとデフォルトでインストールされます.
your-app.confを作成します.
# Place in /home/{user}/.config/upstart
description "Some Spring Boot application"
respawn # attempt service restart if stops abruptly
exec java -jar /path/to/your-app.jar
Windowsでのインストール
Windowsでは、次のように多くの方法があります.
Windows Service Wrapper
Windows Service Wrapperはwinswとも呼ばれ、オープンソースソフトウェアです.winswはプロファイルyour-app.xmlと組み合わせて使用する必要があります.
MyApp
MyApp
This runs Spring Boot as a Service.
java
-Xmx256m -jar "%BASE%\your-app.jar"
rotate
winsw.exeをyour-app.exeに変更してyour-app.xmlと組み合わせて使用する必要があります.
Java Service Wrapper
Java Service Wrapperは非常に強力な構成を提供し、WindowsとLinuxの下でアプリケーションを使用することができます.興味のある学生は自分で勉強することができます.
チュートリアルの詳細については、flydeanのブログを参照してください.