TomcatのUnit設定ファイルの作成 [CentOS]
その際、自動起動の設定で、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
コメント 0