无法调整 Tomcat 的运行时选项

无法调整 Tomcat 的运行时选项

(我首先尝试谷歌,得到了一百万篇文章,这些文章只是对 tomcat 的安装自述文件的重复)。

我正在尝试更改用于在 Ubuntu 20.04 上运行 Tomcat9 的 Java 命令行。具体来说,我正在尝试设置 Xmx、启用 gc 日志记录、定义 HTTP 代理和其他一些内容。 Tomcat 是从存储库安装的。我在某处读到(当时没有记下 URL),这应该通过向单元文件添加覆盖并在 JAVA_OPTS 变量中设置所需的参数来完成。所以我做了这个......

[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"

(我在环境行中添加了一些换行符以帮助此处的可读性 - 在源文件中它是一行)。

可以肯定的是,我也运行了一个,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

原来我误读了其中一份文件。 /etc/default/tomcat9 覆盖 JAVA_OPTS 环境变量。

从该文件中的注释来看,它似乎是打包者希望用户放置自己的选项的地方。

相关内容