日期:2014-05-16  浏览次数:20612 次

linux下tomcat6的开机自动启动脚本


??? 在SUSE SLES11 下安装好tomcat6后,考虑方便需要设置tomcat为开机自动运行。

??? 找到tomcat官方的安装文档 http://tomcat.apache.org/tomcat-6.0-doc/setup.html,按照要求安装,中间发现有些问题,记录下来备忘。

(1) 安装 jsvc

??? 按照tomcat官方的要求,tomcat作为一个守护程序运行,需要用到jsvc工具:

Tomcat?can?be?run?as?a?daemon?using?the?jsvc?tool?from?the?commons-daemon?project。

??? 执行以下命令:

??? cd?tomcat/bin
????tar?xvfz?jsvc.tar.gz
????cd?jsvc-src
????support/buildconf.sh


??? 这里会用到autoconf,如果没有需要安装。恩,SUSE SLES11默认就是没有安装。Yast上去轻松搞定!

??? 成功后可以看到:
??? support/buildconf.sh: configure script generated successfully

??? buildconf.sh 会自动复制bootstrap.jar和commons-daemon.jar两个jar文件到tomcat/bin目录,这两个文件后面需要使用。

(2) 制作启动脚本
??? jsvc下带有两个tomcat.sh的模板,Tomcat.sh为tomcat4.*版本使用,Tomcat5.sh为tomcat5.*使用,很奇怪没有tomcat6.*的模板。只好使用tomcat5的自己改改。复制模板脚本到etc/init.d:

??? cp?tomcat/bin/jsvc-src/native/Tomcat5.sh?/etc/init.d/tomcat
????chmod?+x?/etc/init.d/tomcat


??? 下面是关键了,修改这个脚本的内容,标记为蓝色的部分是新加的内容,红色部分为在原有模板上修改

1. 加入LSB tags
??? 原有的模板文件中没有这个LSB tags内容,在执行chkconfig命令时会发出警告。

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'


??? 因此需要自己加入相应的信息,如下所示,加到#!/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. 设置路径

#?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设置到tomcat/bin, TOMCAT_USER可以修改为非root用户以提高安全性。

3. multi instances
??? 因为只有一个instance,不需要,不过还是将CATALINA_BASE设置为和CATALINA_HOME一致

#?for?multi?instances?adapt?those?lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=/work/soft/tomcat


4. 参数
??? CATALINA_OPTS清空,CLASSPATH不用改,注意bin目录下的commons-daemon.jar和bootstrap.jar,是前面的support/buildconf.sh脚本执行后才出来的,如果发现没有这两个jar文件,说明你没有执行 support/buildconf.sh。

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


5. 启动的命令行
???