Let`s Geek!!!

IT 関連の記事を中心に雑食で投稿します.

実行可能 jar のデプロイ

何の記事??

実行可能 jar を CentOS でデプロイして公開する方法を紹介します。spring boot から実行可能 jar を作成する方法は、以下の記事をご覧ください。

 

shaw-koike.hatenablog.com


java のインストール

この辺は、調べればいくらでも方法が出てくるかと思います。

私は Oracle(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) からダウンロードして以下のコマンドで java8 をインストールしました。 

sudo yum localinstall jdk-8u151-linux-x64.rpm

 

無事にインストールされているかは、以下のコマンドで確認してください。

java -version

jar の起動

jar を置いてあるディレクトリで、java -jar hoge.jar を叩くと、spring のログwが出力され始め、何番 port で動いているかなどが出るかと思います。この段階で対象の jar がきちんと起動することは、確認できます。ただこのままだとターミナルを閉じたらサービスが止まってしまいます。


サービスを永続化する

起動スクリプトを作成し、サービスとして登録します。編集ファイルは、"/etc/systemd/system/hoge.service" で、以下を追記してください。hogeuser と jar の配置ディレクトリは個々変えてください。

[Service]
User=hogeuser
ExecStart=/home/hoge/api/hoge.jar
SuccessExitStatus=143
 
[Install]
WantedBy=multi-user.target

デーモンのリロード

デーモンをリロードするには以下のコマンドを実行します。

systemctl daemon-reload

自動起動設定

自動起動設定は以下のコマンドを実行します。

systemctl enable hoge

設定ファイル

設定ファイルを作成します。jar を配置しているディレクトリに jar と同じ名前で拡張子が .conf のファイルを作成してください。

export APP_DIR=/home/hogeuser/api
export LOG_FOLDER=$APP_DIR/log
export LANG="ja_JP.utf8"

 

ディレクトリが適宜対応してください。


サービスの実行

とうとうサービスの起動になります。以下のコマンドを実行してください。

systemctl start hoge

 

hoge の部分は、.service のファイル名になります。

ステータスは ”systemctl status hoge", jar を置き換えた場合は、"systemctl restart hoge" で修正ファイルの反映ができます。


最後に・・・

初めて、サーバーをいじりました。まだまだ全然わからないことだらけですが、実際に自分が作ったサービスを公開できるようになってとても嬉しいです。