Tomcat 런타임 옵션을 조정할 수 없습니다.

Tomcat 런타임 옵션을 조정할 수 없습니다.

(저는 먼저 Google을 사용해 보았고 Tomcat 설치 Readme와 중복된 기사를 백만 개나 얻었습니다.)

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"

(여기서 가독성을 높이기 위해 환경 줄에 몇 가지 줄 바꿈을 추가했습니다. 소스 파일에서는 한 줄입니다.)

물론 하나도 실행 중이지만 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 환경 변수를 재정의합니다.

파일의 설명을 보면 패키저가 사용자가 자신의 옵션을 넣기를 원하는 위치인 것으로 보입니다.

관련 정보