LoginSignup
2
0

More than 1 year has passed since last update.

systemdにおける環境変数「CATALINA_HOME」の設定方法と確認方法

Last updated at Posted at 2022-08-22

概要

知っている人からすると「何を当たり前のことを」と思うかもしれませんが、結構詰まって困ったので備忘録代わりに残しておきます。
systemdを使用してTomcat起動・停止を行う場合の環境変数「CATALINA_HOME」設定方法・確認方法について記載します。

環境変数の設定

tomcatを起動するためのサービスを設定する。
ポイントはEnvironmentFileで、別ファイルに設定した環境変数を読み込むようにしている。
(下記ファイル内に環境変数を直接定義しても読み込まれないらしい)

/etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat 9
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/tomcat/tomcat.pid
RemainAfterExit=yes

EnvironmentFile=/etc/sysconfig/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
ExecReStart=/opt/tomcat/bin/shutdown.sh;/opt/tomcat/bin/startup.sh

[Install]
WantedBy=multi-user.target

EnvironmentFileで読み込まれる設定ファイルは下記であるため、CATALINA_HOMEを設定する。

/etc/sysconfig/tomcat
CATALINA_HOME=/opt/tomcat

余談
CATALINA_HOME以外の環境変数は下記のように
$CATALINA_HOME/bin/setenv.shで定義することが推奨されている。
最初は存在しないため、新規作成する必要がある。

$CATALINA_HOME/bin/setenv.sh
CATALINA_OUT=/var/log/tomcat/catalina.out
UMASK="0007"
CATALINA_OPTS="$CATALINA_OPTS -server -XX:PermSize=256M -XX:MaxPermSize=256M -Xms512M -Xmx2048M"

環境変数の確認方法

tomcatを起動し

systemctl start tomcat

ステータスを確認する

systemctl status tomcat

すると下記のような結果が表示される。最終行に-Dcatalina.home=<設定した値>と表示されていればOK。ちなみにsetenv.shで設定した値もここで確認可能。

● tomcat.service - Apache Tomcat 9
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (exited) since Mon 2022-08-22 18:27:12 JST; 8s ago
  Process: 33807 ExecStop=/opt/tomcat/bin/shutdown.sh (code=exited, status=0/SUCCESS)
  Process: 33843 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 33843 (code=exited, status=0/SUCCESS)
    Tasks: 27 (limit: 23182)
   Memory: 105.3M
   CGroup: /system.slice/tomcat.service
          mq33856 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties (中略) -Dcatalina.home=/opt/tomcat

感想

CATALINA_HOMEの設定方法については豊富に記事があったのですが確認方法については当たり前過ぎたのかあまり無かったように見受けられたので、今回書きました。
普通に「CATALINA_HOME」で出力されると思っていたからDcatalina.homeを見るべきだなんて思わなかったです‥。あとsystemctl statusで確認できることも知らず、ずっとcatalina.outとにらめっこしていました。恥ずかしい限りです。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0