Tomcat 不会使用 setenv.sh

set*_*voy 5 java tomcat

我已将 Tomcat 安装为服务。

CATALINA_HOMECATALINA_BASE是一样的:

-Dcatalina.base=/usr/share/tomcat7 -Dcatalina.home=/usr/share/tomcat7
Run Code Online (Sandbox Code Playgroud)

我在下一行添加了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"
Run Code Online (Sandbox Code Playgroud)

但是 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

sto*_*eff 3

您应该设置的环境变量称为“CATALINA_OPTS”。下面是tomcat文档中的一个示例,也与监控相关: Apache Tomcat 7 - 监控和管理Tomcat

  • tomcat文档在哪里与stackoverflow问题/答案相矛盾? (3认同)