在SUSE SLES11 下安裝好tomcat6后,考慮方便需要設(shè)置tomcat為開機(jī)自動(dòng)運(yùn)行。
找到tomcat官方的安裝文檔 http://tomcat.apache.org/tomcat-6.0-doc/setup.html,按照要求安裝,中間發(fā)現(xiàn)有些問題,記錄下來備忘。
(1) 安裝 jsvc
按照tomcat官方的要求,tomcat作為一個(gè)守護(hù)程序運(yùn)行,需要用到j(luò)svc工具:
Tomcat can be run as a daemon using the jsvc tool from the commons-daemon project。
執(zhí)行以下命令:
cd tomcat/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
support/buildconf.sh
這里會(huì)用到autoconf,如果沒有需要安裝。恩,SUSE SLES11默認(rèn)就是沒有安裝。Yast上去輕松搞定!
成功后可以看到:
support/buildconf.sh: configure script generated successfully
buildconf.sh會(huì)自動(dòng)復(fù)制bootstrap.jar和commons-daemon.jar兩個(gè)jar文件到tomcat/bin目錄,這兩個(gè)文件后面需要使用。
(2) 制作啟動(dòng)腳本
jsvc下帶有兩個(gè)tomcat.sh的模板,Tomcat.sh為tomcat4.*版本使用,Tomcat5.sh為tomcat5.*使用,很奇怪沒有tomcat6.*的模板。只好使用tomcat5的自己改改。復(fù)制模板腳本到etc/init.d:
cp tomcat/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat
chmod +x /etc/init.d/tomcat
下面是關(guān)鍵了,修改這個(gè)腳本的內(nèi)容,標(biāo)記為藍(lán)色的部分是新加的內(nèi)容,紅色部分為在原有模板上修改
1. 加入LSB tags
原有的模板文件中沒有這個(gè)LSB tags內(nèi)容,在執(zhí)行chkconfig命令時(shí)會(huì)發(fā)出警告。
ss-server:/etc/rc.d # chkconfig tomcat on
insserv: warning: script 'tomcat' missing LSB tags and overrides
insserv: Default-Start undefined, assuming default start runlevel(s) for script `tomcat'
因此需要自己加入相應(yīng)的信息,如下所示,加到#!/bin/sh這行下:
#!/bin/sh
### BEGIN INIT INFO
# Provides: tomcat
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: The tomcat Java Application Server
### END INIT INFO
2. 設(shè)置路徑
# Adapt the following lines to your configuration
JAVA_HOME=/work/soft/java/jdk/jdk
CATALINA_HOME=/work/soft/tomcat
DAEMON_HOME=/work/soft/tomcat/bin
TOMCAT_USER=sky
注意DAEMON_HOME設(shè)置到tomcat/bin, TOMCAT_USER可以修改為非root用戶以提高安全性。
3. multi instances
因?yàn)橹挥幸粋€(gè)instance,不需要,不過還是將CATALINA_BASE設(shè)置為和CATALINA_HOME一致
# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=/work/soft/tomcat
4. 參數(shù)
CATALINA_OPTS清空,CLASSPATH不用改,注意bin目錄下的commons-daemon.jar和bootstrap.jar,是前面的
support/buildconf.sh腳本執(zhí)行后才出來的,如果發(fā)現(xiàn)沒有這兩個(gè)jar文件,說明你沒有執(zhí)行support/buildconf.sh。
CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
5. 啟動(dòng)的命令行
$DAEMON_HOME/********* \這行一定要改,tomcat6的路徑和tomcat5似乎有變化,模板里面的路徑完全不對(duì)。不要忘了同時(shí)修改start/stop兩處。其他內(nèi)容不用變:
case "$1" in
start)
#
# Start Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
......
為了檢測上面的腳本是否有效,可以直接執(zhí)行/etc/rc.d/tomcat start/stop來看tomcat的啟動(dòng)和關(guān)閉是否正確。
(3) 設(shè)置開機(jī)啟動(dòng)
執(zhí)行chkconfig tomcat on。
重啟SUSE后,發(fā)現(xiàn)tomcat已經(jīng)自動(dòng)啟動(dòng)了。
為了方便大家,我將這個(gè)tomcat6可用的腳本上傳,以供參考。
http://m.tkk7.com/Files/aoxj/tomcat6.sh.zip