[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-21-openjdk
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
ExecStart / ExecStop ディレクティブの解説
Environmentディレクティブの解説
‘CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC’
- -Xms512M
- 初期ヒープサイズを設定します。JVMが起動する際に割り当てるメモリの最小サイズを指定します。この場合、512MBが割り当てられます
- -Xms512M
- 初期ヒープサイズを設定します。JVMが起動する際に割り当てるメモリの最小サイズを指定します。この場合、512MBが割り当てられます
- -Xmx1024M
- 最大ヒープサイズを設定します。JVMが使用できるメモリの最大サイズを指定します。この場合、1024MB(1GB)が割り当てられます
- -server
- サーバーモードでJVMを起動します。サーバーモードは、クライアントモードよりもパフォーマンスが向上するように最適化されています。特に長時間稼働するサーバーアプリケーションに適しています
- -XX:+UseParallelGC
- 並列ガベージコレクションを使用するようにJVMに指示します。並列ガベージコレクションは、複数のスレッドを使用してガベージコレクションを行うため、パフォーマンスが向上します。特に多くのメモリを使用するアプリケーションに効果的で
‘JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom’
-Djava.awt.headless=true
:- JavaのAWT(Abstract Window Toolkit)をヘッドレスモードで動作させるように設定します。ヘッドレスモードでは、GUI(グラフィカルユーザーインターフェース)を必要としない環境でJavaアプリケーションを実行できます。サーバー環境では通常、ディスプレイやキーボードが接続されていないため、この設定が必要です。これにより、グラフィカルな操作を行わずにJavaアプリケーションを実行できます。
-Djava.security.egd=file:/dev/./urandom
:- Javaのセキュリティ設定で、エントロピー生成デバイスを指定します。
/dev/./urandom
は、Linuxシステムで使用される擬似乱数生成デバイスです。この設定により、Javaのセキュリティ機能が乱数を生成する際に、より高速に動作するようになります。特に、SSL/TLS接続の初期化時にエントロピーが不足する問題を回避するために使用されます。
- Javaのセキュリティ設定で、エントロピー生成デバイスを指定します。