Nov 222006
 

Tomcat起動時のJVMオプションを$CATALINA_OPTSや$JAVA_OPTS環境変数に設定する情報をよく見かけます。

これらの変数は、起動前にコマンドラインで設定しようとか、~/.bashrcに書いておこうとか、catalina.shを書き換えようといったハナシで大抵終わっているのですが、setenv.shファイルを用意する、という方法もあります。

実は起動スクリプトのcatalina.shには「setenv.shがあれば読み込む」というコードが仕込まれています。

if [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
  . "$CATALINA_HOME"/bin/setenv.sh
fi

ですので、このファイルを用意して(デフォルトでは存在しません)、

CATALINA_OPTS="-server -Xmx512M"

とでもしておけば、簡単に設定することができるようになっているのです。

この方法のメリットは、ユーザが手動なりprofileなりでいかなる環境変数を設定していても影響をうけなくなることです。無理やりリセットすることになりますから。
suの方法によってはprofile読まれなかったりすることもありますからねー。

本番環境で使われる場合や、catalina.shを書き換えるぐらいなら、setenv.shの利用をおすすめしておきます。

余談ですがCLASSPATHはsetenv.shでは設定できません。
catalina.shを更に眺めていくとよくわかるのですが、setenv.shのあとにsetclasspath.shというファイルを読み込んで、その中で初期化しているためです。

Sorry, the comment form is closed at this time.