CentOS 5.4 で、Tomcat 6 を自動起動する
CentOS 5.4 で、Tomcat 6 を自動起動する
前回は、CentOS 上で Tomcat をデーモンとして起動する方法を紹介した。今回は、起動スクリプトを作成し、システムのスタートアップ時に自動起動する方法を紹介する。
以下は、前回紹介した手動でのデーモン起動方法だ。
>./bin/jsvc -cp ./bin/bootstrap.jar -user tommy -home /usr/java/jre1.6.0_18/ -outfile ./logs/catalina.out -errfile ./logs/catalina.err org.apache.catalina.startup.Bootstrap
同じく、手動停止方法は、以下の通り。
>./bin/jsvc -stop org.apache.catalina.startup.Bootstrap
簡単な話、これらのコマンドをスタートアップ時、シャットダウン時に実行するようにしてやれば良い。
ただ、前回 jsvc をビルドする際に展開したソースコードディレクトリにテンプレートとなるスクリプトファイルが含まれているので、これを転用する。jsvc のソースファイルは、前回と同様に "/usr/local/apache-tomcat-6.0.26/bin/jsvc-src" に展開したものとする。
>su
>cp /usr/local/apache-tomcat-6.0.26/bin/jsvc-src/native/Tomcat5.sh
/etc/rc.d/init.d/
>mv /etc/init.d/Tomcat5.sh /etc/init.d/tomcat6
ファイルを rc スクリプトとして、カスタマイズする。
>vi /etc/init.d/tomcat6
#!/bin/sh
# chkconfig: - 80 20
# description: Tomcat 6 via jsvc.
##############################################################################
#
# Copyright 2004 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#
http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
##############################################################################
#
# Small shell script to show how to start/stop Tomcat using jsvc
# If you want to have Tomcat running on port 80 please modify the server.xml
# file:
#
# <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->
# <Connector className="org.apache.catalina.connector.http.HttpConnector"
# port="80" minProcessors="5" maxProcessors="75"
# enableLookups="true" redirectPort="8443"
# acceptCount="10" debug="0" connectionTimeout="60000"/>
#
# That is for Tomcat-5.0.x (Apache Tomcat/5.0)
#
# Adapt the following lines to your configuration
##JAVA_HOME=/home2/java/j2sdk1.4.2_03
JRE_HOME=/usr/java/jre1.6.0_18
##CATALINA_HOME=/home/tomcat5/tomcat5/jakarta-tomcat-5/build
CATALINA_HOME=/usr/local/apache-tomcat-6.0.26
##DAEMON_HOME=/home/jfclere/daemon
DAEMON_HOME=/usr/local/apache-tomcat-6.0.26/bin
##TOMCAT_USER=tomcat5
TOMCAT_USER=tommy
# for multi instances adapt those lines.
##TMP_DIR=/var/tmp
TMP_DIR=/tmp
##PID_FILE=/var/run/jsvc.pid
PID_FILE=/var/run/tomcat6.pid
##CATALINA_BASE=/home/tomcat5/tomcat5/jakarta-tomcat-5/build
CATALINA_BASE=$CATALINA_HOME
##CATALINA_OPTS="-Djava.library.path=/home/jfclere/jakarta-tomcat-connectors/jni/native/.libs"
CATALINA_OPTS=
CLASSPATH=\
##$JAVA_HOME/lib/tools.jar:\
$JRE_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
case "$1" in
start)
#
# Start Tomcat
#
##$DAEMON_HOME/src/native/unix/jsvc \
$DAEMON_HOME/jsvc \
-user $TOMCAT_USER \
& -home $JRE_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;
stop)
# # Stop Tomcat
#
##$DAEMON_HOME/src/native/unix/jsvc \
$DAEMON_HOME/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;
*)
echo "Usage tomcat.sh start/stop"
exit 1;;
esac
(((EOF)
オリジナルのスクリプトを変更した部分は、"##" でコメントアウトしてある。VM は、JDK ではなく、JRE を利用すれば良いため、"JAVA_HOME" ではなく、"JRE_HOME" 環境変数を宣言し、パスを "/usr/java/jre1.6.0_18 " に定義し、"-home" オプションには、オリジナルのスクリプトでは、"JAVA_HOME" が指定されているため、 "JRE_HOME" に変更した。
ここで、最も重要なのは、ヘッダ付近に追加した以下の行を必ず記述すること。これは、起動スクリプトを管理する "chkconfig" コマンドを利用する場合に必ず必要な記述となる。
# chkconfig: - 80 20
## description: Tomcat 6 via jsvc.
また、"Tomcat6.sh" ではなく、"Tomcat.sh" をテンプレートとする場合は、"-cp" オプションに指定するクラスが "org.apache.catalina.startup.BootstrapService" ではなく、 "org.apache.catalina.startup.Bootstrap" であることに注意する。
スクリプトに実行権限を付与する。
>chmod +x /etc/init.d/tomcat6p>
手動で実行する。/p>
>>/etc/init.d/tomcat6 start
エラーが出力されないことを確認し、ブラウザから、http://localhost:8080/ にアクセスし、正しく動作していることを確認する。
デーモンを停止する。
>/etc/init.d/tomcat6 stop
作成した起動スクリプト "tomcat6" を起動スクリプト管理下に設定する。
>/sbin/chkconfig tomcat6 on
システムを再起動する。
>reboot
システム起動後、ブラウザから、http://localhost:8080/ にアクセスし、正しく動作していることを確認する。
次回は、Tomcat の簡易的な Web サーバーではなく、Apache を Web サーバーとして使用する方法を説明する。
コメント (0)
コメントの投稿