在SUSE SLES11 下安装好tomcat6后,考虑方便需要设置tomcat为开机自动运行。
找到tomcat官方的安装文档 http://tomcat.apache.org/tomcat-6.0-doc/setup.html,按照要求安装,中间发现有些问题,记录下来备忘。
(1) 安装 jsvc
按照tomcat官方的要求,tomcat作为一个守护程序运行,需要用到jsvc工具:
执行以下命令:
这里会用到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:
下面是关键了,修改这个脚本的内容,标记为蓝色的部分是新加的内容,红色部分为在原有模板上修改
1. 加入LSB tags
原有的模板文件中没有这个LSB tags内容,在执行chkconfig命令时会发出警告。
因此需要自己加入相应的信息,如下所示,加到#!/bin/sh这行下:
2. 设置路径
注意DAEMON_HOME设置到tomcat/bin, TOMCAT_USER可以修改为非root用户以提高安全性。
3. multi instances
因为只有一个instance,不需要,不过还是将CATALINA_BASE设置为和CATALINA_HOME一致
4. 参数
CATALINA_OPTS清空,CLASSPATH不用改,注意bin目录下的commons-daemon.jar和bootstrap.jar,是前面的support/buildconf.sh脚本执行后才出来的,如果发现没有这两个jar文件,说明你没有执行 support/buildconf.sh。
5. 启动的命令行
$DAEMON_HOME/********* \这行一定要改,tomcat6的路径和tomcat5似乎有变化,模板里面的路径完全不对。不要忘了同时修改start/stop两处。其他内容不用变:
为了检测上面的脚本是否有效,可以直接执行/etc/rc.d/tomcat start/stop来看tomcat的启动和关闭是否正确。
(3) 设置开机启动
执行chkconfig tomcat on。
重启SUSE后,发现tomcat已经自动启动了。
为了方便大家,我将这个tomcat6可用的脚本上传,以供参考。