1)myapp.jarの所有者がmyapp.jarの実行ユーザになるので、rootではなくアプリ用ユーザにする。※2)jarファイルと同名のconfファイルを作成し、環境変数やJVMに渡すパラメータを設定する。Jarであれば不要となる。Jarの登場によって、実質的に起動スクリプトが公式に提供されたことになる。これによって、簡単にserviceコマンドでアプリをdeamon起動することができるようになった。ここでは、ビルド方法と次の環境にリリースする場合の構築手順と解説を記載する。※基本はhttp://docs.spring.io/spring-boot/docs/1.3.5.RELEASE/reference/htmlsingle/#deployment-installに書いてある通り。1.3.5アプリ名:myapp.jarアプリ用ユーザ名:myappusrビルド方法pom.xmlにspring-boot-maven-pluginというbuildプラグインを追加し、executableをtrueにする。Jarファイルを作成してくれる。#アプリ用に任意のディレクトリを作成する。directoryとして利用される。#myapp.jarの所有者がmyapp.jarの実行ユーザになるので、rootではなくアプリ用ユーザにする。Jarはスクリプトが内蔵されているため、実行可能ファイルである必要があり、最低限、権限xを所有者につける。#jarファイルと同名のconfファイルを作成し、環境変数やJVMに渡すパラメータを設定する。※1)myapp.jarの所有者がmyapp.jarの実行ユーザになるので、rootではなくアプリ用ユーザにする。http://docs.spring.io/spring-boot/docs/1.3.5.RELEASE/reference/htmlsingle/#deployment-initd-service-securingにセキュリティ面を考慮した設定方法が列挙されている。次の二点は、構築手順で達成できている。myapp.jarの所有者をrootからmyappusrに変更するmyapp.jarの権限を500に変更するmyapp.confの所有者をrootにする(rootで構築しているため、自動で所有者がrootになっている)他は設定していないので、必要に応じてセキュリティを高めていく必要がある。400※2)jarファイルと同名のconfファイルを作成し、環境変数やJVMに渡すパラメータを設定する。jarファイルと同じディレクトリに同名のconfファイルを置くと、起動時に読み込んでくれる。読み込む方法は、jarファイルの初めの部分がシェルスクリプトになっているので、jarファイルをlessして見るとわかる。"${jarfolder}/${configfile}"となっているため、環境変数を設定したければexportを、JVMに渡す引数を設定したければJAVA_OPTSに値を設定すればいい。今回は以下の二つを設定した。Bootの実行環境をJVM引数で渡すことができ、propertiesファイルの切り替え等ができるため、おそらくどのプロジェクトでも必要になる引数だろう。開発環境であればdevelopment、ステージング環境であればstaging、本番環境であればproductionなどの引数を渡す。LANG="ja_JP.UTF-8"文字コードを設定した理由は、今回の環境がCentOSというところにある。/etc/init.dにあるスクリプトを直接実行する場合と異なり、manによれば、serviceコマンドで実行するとプログラムを起動する際に環境変数LANGとTERM以外が引き継がれない。scripts.しかし、CentOSではこの記述が当てはまらず、LANGも引き継がれない。-iで環境変数をクリアしており、LANGを再設定してないから。HatやFedoraも含めCentOS系のディストリを使用する場合は、confファイル内でLANG変数をexportしなければならない。Ubuntu系を使用する場合でも、LANGの設定があることでバグを起こすわけではないので、一律この設定を入れてもいいかもしれない。他にもconfファイルで設定できる項目はたくさんあるので、公式ドキュメントを確認してほしい。http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html/deployment-install.html#deployment-script-customization※3)ログ確認ログファイルは所定の場所に出力される。出力場所を変えたければconfファイルで設定ができる。※4)PID確認PIDファイルは所定の場所に出力される。PIDファイルが格納されるディレクトリを作る必要はない。出力場所を変えたければconfファイルで設定ができる。