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의 자체 시작 파일을 조정할 필요가 없으며 사용자 정의 변경 사항이 더 눈에 띄게 됩니다.