So-net無料ブログ作成

TomcatのUnit設定ファイルの作成 [CentOS]

CentOS 7.2 上への Tomcat 8.0 の導入を行った(Tomcat は apache.org からダウンロード)。
その際、自動起動の設定で、Unit 設定ファイルの作成に少々手間取った。
以下は、備忘録としてまとめたものである。

[ソフトウェアのバージョン]
・systemd-219-19.el7_2.12.x86_64

1. Unit 設定ファイル (/etc/systemd/system/tomcat.service)
[Unit]
Description=Apache Tomcat
After=network.target

[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/java
Environment="JAVA_OPTS=-Duser.language=en -Duser.region=US \
-Dfile.encoding=ISO-8859-1"    … (注1)
Environment=CATALINA_HOME=/usr/local/tomcat
Environment=CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid
User=tomcat
Group=tomcat
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target


(注1) 実際には前の行と合わせて一行に設定


2. Unit 設定ファイルでの指定項目の説明


(1) 環境変数の定義 (Environment)


・Environment=name=value で、name に value を設定できる。
・EnvironmentFile に環境変数を定義したファイルのパスを指定することもできる。
・今回の方法では、環境変数の値に定義済の環境変数を含めることはできない。

(補足)
上記の Unit 設定ファイルでは、下記の環境変数を定義している。
・JAVA_HOME, JAVA_OPTS, CATALINA_HOME, CATALINA_PID


(2) 実行ユーザー/グループの指定 (User/Group)


User/Group に当該ユーザー/グループを指定する。


(3) 起動/停止コマンドの指定 (ExecStart/ExecStop)


環境変数を使用してパスを指定すると、絶対パスでないと認識され、エラーとなる。

(補足)
当該 Unit の再起動時には、下記の順にコマンドが実行される。
・停止コマンド
・起動コマンド


(4) 起動完了の判定方法の指定 (Type)


forking: 子プロセスを fork するコマンドである。
(デフォルト値: simple)


(5) 起動順序、依存関係の指定


(a) 起動順序の指定


After=xxx: 指定した Unit の起動後に起動する。


(b) 依存関係の指定


WantedBy=xxx: 指定した Unit が当該 Unit に依存する。
(指定した Unit の起動時に当該 Unit を起動する。)

(補足)
指定した Unit の [Unit] 欄での Wants 指定と同じ効果がある。


(6) PID ファイル


/var/run への書き込み権限がないため /usr/local/tomcat/temp に作成する。


3. 備考


該当するオンライン・マニュアルの所在は、下記の通りである。

・Unit 欄の設定項目: man systemd.unit
・Service 欄の設定項目: man systemd.service
・Install 欄の設定項目: man systemd.unit



nice!(6)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 6

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。