Tomcat은 setenv.sh를 사용하지 않습니다.

Tomcat은 setenv.sh를 사용하지 않습니다.

Tomcat을 서비스로 설치했습니다.

그것은 다음과 같습니다 CATALINA_HOME:CATALINA_BASE

-Dcatalina.base=/usr/share/tomcat7 -Dcatalina.home=/usr/share/tomcat7

다음 줄 setenv.sh에 스크립트를 추가합니다 ./usr/share/tomcat7/bin

$ cat /usr/share/tomcat7/bin/setenv.sh
#!/usr/bin/env bash

export JAVA_OPTS="-Dcom.sun.management.jmxremote=true \
                  -Dcom.sun.management.jmxremote.port=9090 \
                  -Dcom.sun.management.jmxremote.ssl=false \
                  -Dcom.sun.management.jmxremote.authenticate=false \
                  -Djava.rmi.server.hostname=54.***.***.65"

그러나 Tomcat의 동작은 여전히 ​​변경되지 않았습니다. 새 포트가 열리지 않으며 새 옵션도 없습니다 ps aux | grep java.

# netstat -anp | grep 9090 | wc -l
0

# ps aux | grep java
tomcat   32063 96.6 23.5 1904000 399872 ?      Sl   09:04   3:07 /usr/lib/jvm/jre/bin/java -Xms512M -Xmx1024M -javaagent:/usr/share/tomcat7/newrelic/newrelic.jar -classpath :/usr/share/tomcat7/bin/bootstrap.jar:/usr/share/tomcat7/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat7 -Dcatalina.home=/usr/share/tomcat7 -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat7/temp -Djava.util.logging.config.file=/usr/share/tomcat7/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start

파일은 tomcat사용자가 소유하며 exec다음 비트를 포함합니다.

# ls -l /usr/share/tomcat7/bin/setenv.sh
-rwxr-xr-x 1 tomcat tomcat 329 Jun 15 08:52 /usr/share/tomcat7/bin/setenv.sh

답변1

설정해야 하는 환경 변수는 "CATALINA_OPTS"입니다. 다음은 모니터링과 관련된 tomcat 문서의 예입니다. Apache Tomcat 7 - Tomcat 모니터링 및 관리

답변2

내 블로그에 따르면 내 솔루션은 JAVA_OPTS다음 $CATALINA_HOME/conf/tomcat7.conf과 같이 설정하는 것입니다.

# You can pass some parameters to java here if you wish to
#JAVA_OPTS="-Xminf0.1 -Xmaxf0.3"
JAVA_OPTS="-Xms512M -Xmx1024M -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=54.***.***.65"

Tomcat을 다시 시작한 후의 결과는 다음과 같습니다.

# ps aux | grep java
tomcat    1359 96.6 13.0 1887508 220732 ?      Sl   09:19   0:44 /usr/lib/jvm/jre/bin/java -Xms512M -Xmx1024M -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=9090 -[...]

폴리스티렌기본 구성 파일의 복사본을 만드는 것을 잊지 마십시오. 그럼 grep -r JAVA_OPTS etc/*찾아보시면 # documentation더 도움이 될 것 같아요 :-)

답변3

참고로, Tomcat 8.5.38(7은 확인하지 않음)에서는 내 사용자 정의가 setenv.sh여전히 잘 작동합니다. 예를 들어 저는 이것을 $CLASSPATH 설정에 사용하는 것을 좋아합니다. 유지 관리가 더 쉽고 Tomcat의 자체 시작 파일을 조정할 필요가 없으며 사용자 정의 변경 사항이 더 눈에 띄게 됩니다.

관련 정보