2009年12月11日 星期五

使用jsvc開機執行tomcat

本文主要是參照:

http://blog.xuite.net/pippeng/blog/20192494

改寫成我要的設定如下:

1. 我下載下來的tomcat主要是放在/opt下

[oracle@localhost apache-tomcat-6.0.20]$ pwd
/opt/apache-tomcat-6.0.20

2.
到tomcat的目錄(/opt/apache-tomcat-6.0.20)內的子目錄/bin將jsvc.tar.gz解壓縮

#cd /opt/apache-tomcat-6.0.20/bin
#tar zxvf jsvc.tar.gz

#cd jsvc-src
#chmod +x configure
執行configure並指定jdk位置,請依照你安裝jdk路徑

我的是jdk路徑是/opt/jdk1.6.0_17

#./configure –with-java=/opt/jdk1.6.0_17

完成後依照指示執行make
#make

再來新增tomcat的使用者帳戶
名稱可自定,最好設成nologin
#useradd -s /sbin/nologin tomcat
再來將tomcat的檔案權限開放給剛剛新增的一般使用者
#chown -R tomcat.tomcat /opt/apache-tomcat-6.0.20/

接下來讓tomcat變成服務service
新增一檔案到Linux的init.d這目錄,檔案名稱可以任意
我的範例是新增一tomcatStart來當這service的名稱

#cd /etc/init.d/

#!/bin/sh
# chkconfig: 345 88 14
# description: Tomcat Daemon
# processname: jsvc
# pidfile: /var/run/jsvc.pid
# config:
#
# Source function library.
. /etc/rc.d/init.d/functions
#
prog=tomcat

JAVA_HOME=/opt/jdk1.6.0_17
CATALINA_HOME=/opt/apache-tomcat-6.0.20
DAEMON_HOME=/opt/apache-tomcat-6.0.20/bin

TOMCAT_USER=tomcat

# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=/opt/apache-tomcat-6.0.20

CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar

case “$1″ in
start)
#
# Start Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-user $TOMCAT_USER \
-home $JAVA_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/jsvc-src/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;

*)
echo “Usage service tomcat55 start/stop”
exit 1;;
esac

儲存後,記得要將這檔案可以被執行

#chmod 755 tomcatStart
將這shell script新增為service並設為開機自動執行

#chkconfig –add tomcatStart
#chkconfig tomcatStart on
啟動tomcatStart service
#service tomcatStart start
檢查是否有啟動
#netstat -tupln |grep jsvc.exec

以上完成!!!

沒有留言: