(私は最初にGoogleを試してみましたが、TomcatのインストールReadmeと重複した記事を100万個入手しました。)
Ubuntu 20.04でTomcat9を実行するためにJavaコマンドラインを変更しようとしています。具体的には、Xmx設定、gcロギングの有効化、HTTPプロキシ定義、およびその他のいくつかのタスクを実行しようとしています。 Tomcatはリポジトリからインストールされます。ユニットファイルにオーバーライドを追加し、JAVA_OPTS変数に必須パラメータを設定してこれを行う必要があることをどこかで読みました(当時はURLを記録しませんでした)。だからこれを作りました...
[Service]
ProtectSystem=full
Environment="JAVA_OPTS=-noverify -Xms512M -Xmx4096M -server -Dprod=true
-Xloggc:/var/log/tomcat9/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5
-XX:GCLogFileSize=20M -Dcom.sun.management.jmxremote
-Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false -Dlog4j2.formatMsgNoLookups=true
-Dhttp.proxyHost=proxy.bip -Dhttp.proxyPort=3128 -Dhttps.proxyHost=proxy.bip
-Dhttps.proxyPort=3128 -javaagent:/var/lib/tomcat9/lib/aspectjweaver-1.8.13.jar
-Dlog4j2.formatMsgNoLookups=true"
(ここで読みやすくするために、環境行にいくつかの改行を追加しました。ソースファイルでは1行です。)
もちろん、1つも実行していますが、systemctl daemon reload
サービスを停止/開始すると、次のように表示されます。
/usr/lib/jvm/java-8-openjdk-amd64/bin/java -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.awt.headless=true -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
-Dorg.apache.catalina.security.SecurityListener.UMASK=0027
-Dignore.endorsed.dirs= -classpath /usr/share/tomcat9/bin/bootstrap.jar:/usr/share/tomcat9/bin/tomcat-juli.jar
-Dcatalina.base=/var/lib/tomcat9 -Dcatalina.home=/usr/share/tomcat9
-Djava.io.tmpdir=/tmp org.apache.catalina.startup.Bootstrap start
これは私のJAVA_OPTではありません。
ブートチェーンを確認してみると(下記参照)、私が設定したオプションを削除する項目は表示されません。
/lib/systemd/system/tomcat9.service
/usr/libexec/tomcat9/tomcat-update-policy.sh
$CATALINA_BASE/policy/catalina.policy
/usr/libexec/tomcat9/tomcat-start.sh
/etc/default/tomcat9
/usr/libexec/tomcat9/tomcat-locate-java.sh
$CATALINA_HOME/bin/catalina.sh
私は私の設定をパッケージされたソフトウェアとは別に維持したいと思います。私がここで何を見逃しているのでしょうか?
答え1
わかりましたが、文書の1つを誤って読みました。 /etc/default/tomcat9 は JAVA_OPTS 環境変数をオーバーライドします。
ファイルの説明を見ると、パッケージャはユーザーが自分のオプションを入れたい場所にいるようです。