web-dev-qa-db-ja.com

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
5
setevoy

設定する必要がある環境変数は「CATALINA_OPTS」と呼ばれます。以下は、監視にも関連するTomcatドキュメントの例です。 Apache Tomcat 7-Tomcatの監視と管理

3
stoeff

参考までに、Tomcat 8.5.38(7はチェックしていません)では、カスタムsetenv.shは引き続き問題なくピックアップされました。私はこれを使いたいです。 $ CLASSPATHを設定するため。これは、よりメンテナンスしやすく、Tomcat独自の起動ファイルを適応させる必要がないため、カスタムの変更がより見やすくなります。

0
Gregor

私のブログによると、私のソリューションは設定されました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 -[...]

P.S。デフォルトの構成ファイルのコピーを作成することを忘れないでください。次にgrep -r Java_OPTS etc/*で見つけるには# documentationがさらに役立ちます:-)

0
setevoy