いつも次のようなコマンドでアプリケーションを起動しているが、簡単に起動スクリプトが作れるみたいなので作った結果をメモしておく。
$ java -jar app.jar |
起動スクリプトを作成することで以下の様に起動が可能になり、pidファイル、logファイル、設定ファイルも利用可能になります。
$ /etc/init.d/app start |
基本的にspringドキュメントの内容です。
動作させているOSはCentOSです。他のOSの場合はコマンドが若干違うので読み替えてください。
設定
spring bootアプリであればなんでもOKなので以前作ったアプリを適当に選んで設定する。
設定はspring boot pluginのexecutableをtrueにするだけ。
mavenを使っている場合はpom.xmlに以下を記述。<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
gradleの場合は次の設定を追加する。
apply plugin: 'spring-boot' |
ビルド
ビルドするとtarget以下にjarが生成される。
$ ./mvnw clean package |
設置
/varでも/optでも好きなところにjarを移動する。jarのシンボリックリンクをinit.d以下に作成する。これだけ。
$ sudo cp target/spring-boot-rest-api-sample-0.0.1-SNAPSHOT.jar /var/myapp/rest-api-sample.jar |
確認
まず、起動スクリプトが動くかどうか確認する。
$ sudo /etc/init.d/rest-api-sample status |
実行はしてないですが、restartもあります。
ログファイルとpidファイルが生成されている。logファイルの中身はspring-boot:run
で標準出力される内容と同じなので割愛。
$ ls /var/log/rest-api-sample.log |
自動起動せってもできる。
$ chkconfig rest-api-sample on |
実行ユーザを作る場合はこちら。$ useradd -s /sbin/nologin bootapp
$ chown bootapp:bootapp /var/myapp/rest-api-sample.jar
$ chmod 500 /var/myapp/rest-api-sample.jar
設定ファイルも作れる。
$ cat /var/myapp/rest-api-sample.conf |
設定の詳細。
上記の設定が起動ファイル関連で、アプリケーション独自の設定はできないっぽい。
簡単ですね。
おわり。