2013年4月23日火曜日

Tomcat / Jettyの環境変数の設定

ついついcatalina.shなど起動シェルに直書きしてしまいがちですが、そんなのが許されるの(ry
Tomcat、Jettyについて、それぞれ以下のように行うのが望ましいです。

◯Tomcat
Tomcat付属のcatalina.sh、もしくはdaemon.shには、以下のような行があります。
if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then
  . "$CATALINA_BASE/bin/setenv.sh"
elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then
  . "$CATALINA_HOME/bin/setenv.sh"
fi
環境変数 $CATALINA_BASE、もしくは$CATALINA_HOME配下の"/bin/setenv.sh"を読み込むようになっています。
パッケージ配布されたものを展開した際にはこちらのファイルは存在しないので、所定の場所にsetenv.shを作成し、その中で環境変数の設定を行うようにしてあげれば、OKです。

◯Jetty
Jetty付属のstart.shには、以下のような行があります。
ETC=/etc
if [ $UID != 0 ]
then
  ETC=$HOME/etc
fi

for CONFIG in $ETC/default/jetty{,9} $HOME/.jettyrc; do
  if [ -f "$CONFIG" ] ; then
    readConfig "$CONFIG"
  fi
done

  • /etc/default/jetty
  • ${HOME}/.jettyrc
の順番に設定を読みにいくようです。ちなみにreadConfigはjetty.sh内に記載されている設定読み込み用の関数です。
readConfig()
{
  (( DEBUG )) && echo "Reading $1.."
  source "$1"
}
全体定義についてはetcの下に置き、ユーザー固有の設定についてはシェル実行ユーザーの{user_home}/.jettyrcに記載する、という形が良いのだと思います。


0 件のコメント:

コメントを投稿