Tomcat啟動可以用自帶的確jsvc來實現:
jsvc本來要從
http://jakarta.apache.org/
下載 commons-daemon-1.0-Alpha ,不過tomcat 已經自己帶了一個了,在tomcat/bin目錄下有一個jsvc.tar.gz 解壓,編譯:
#tar -xzvf jsvc.tar.gz
#cd jsvc-src
運行
#sh support/buildconf.sh
#./configure --with-java=/usr/java
#make
(注意:tomcat-5.0.18版本帶的jsvc源代碼有一個低級錯誤--少一個分號,會導致編譯不成功,可以自己加上這個分號)
tomcat自己帶的jsvc-src/native目錄下還有兩個腳本 Tomcat.sh 和 Tomcat5.sh ,可以用作啟動和停止tomcat的腳本,我把Tomcat5.sh略作修改,文件如下:
代碼:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#!/bin/sh
#
# Startup Script for Tomcat5
#
# chkconfig: 345 87 13
# description: Tomcat Daemon
# processname: jsvc
# pidfile: /var/run/jsvc.pid
# config:
#
# Source function library.
. /etc/rc.d/init.d/functions
#
prog=tomcat
#
# 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:
#
#??
#??? #?????????????? port="80" minProcessors="5" maxProcessors="75"
#?????????????? enableLookups="true" redirectPort="8443"
#?????????????? acceptCount="10" debug="0" connectionTimeout="60000"/>
#
# You need a developement version of Tomcat (Apache Tomcat/4.1-dev)
#
# Adapt the following lines to your configuration
#設定自己的參數
JAVA_HOME=/usr/local/j2sdk1.4.2-04
CATALINA_HOME=/usr/local/jakarta-tomcat-5.0.19
DAEMON_HOME=$CATALINA_HOME/bin
#需要在系統中設定一個沒有權限的
#用戶來運行,這樣比較安全
TOMCAT_USER=tomcat5
TMP_DIR=/var/tmp
CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
start(){
??? echo -n $"Starting $prog: "
??? #
??? # Start Tomcat
??? #
??? $DAEMON_HOME/jsvc-src/jsvc \
??? -user $TOMCAT_USER \
??? -home $JAVA_HOME \
??? -Dcatalina.home=$CATALINA_HOME \
??? -Djava.io.tmpdir=$TMP_DIR \
??? -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 \
??? RETVAL=$?
??? [ $RETVAL = 0 ] && touch /var/lock/subsys/jsvc
??? [ $RETVAL = 0 ] && echo_success || echo_failure
??? echo
??? return $RETVAL
}
stop(){
??? echo -n $"Stopping $prog: "
??? #
??? # Stop Tomcat
??? #
??? PID=`cat /var/run/jsvc.pid`
??? kill $PID
??? RETVAL=$?
??? [ $RETVAL = 0 ] && rm /var/lock/subsys/jsvc
??? [ $RETVAL = 0 ] && echo_success || echo_failure
??? echo
??? return $RETVAL
}
case "$1" in
? start)
??????? start
??? ;;
? stop)
??????? stop
??? ;;
? restart|reload)
??????? stop
??????? start
??? ;;
? *)
??? echo "Usage $0 start/stop"
??? exit 1;;
esac
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
把這段代碼保存為 /etc/rc.d/init.d/tomcat ,然后運行
#chkconfig --add tomcat
用--list看一下是否系統已有tomcat啟動文件
#ckhconfig --list
即可把tomcat 添加為系統服務自動隨系統啟動了。這個腳本會在runlevel 3/4/5三種模式自動啟動。注意這段腳本是為tomcat5創建的,如果你用tomcat4,則需要在另一個tomcat.sh的基礎上修改。
===Loo,2005-03-09,實戰總結===
jmw用的tomcat是4.1,沒有自帶的jsvc,需要下載,然后根據上面的步驟操作.
有點需要注意的,上文提到的TOMCAT_USER=tomcat5,為啟動tomcat的用戶,需要是系統的用戶,并且對$TOMCAT_HOME/conf目錄有寫的權限,啟動tomcat的時候需要在這個文件夾下面創建一個臨時的tomcat-user.xm.new文件.可以通過$TOMCAT_HOME/logs/catalina.out查看具體的日志.同時,由于機器安裝了oracle,并且配置為開機啟動.oracle啟動的時候,tnslsnr進程會占用8080端口(不知道如何修改),導致默認的tomcat啟動失敗,在解決問題的過程發現一個很好的命令:
1.查看當天端口的占用情況:netstat -an
2.根據端口號查看是那個進程占用了該端口:lsof -i:8080? (8080為要查看的端口)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
