zhouln 发表于 2015-8-9 00:02:04

Tomcat Linux下自启动

  使用root用户在/etc/init.d中touch tomcat文件,使用VI编辑脚本内容如下:



#!/bin/bash
#
# tomcat      
#
# chkconfig:345 71 71
# description:Start up the Tomcat servlet engine.
# Source function library.
. /etc/init.d/functions

RETVAL=$?
CATALINA_HOME="/home/ams/apache-tomcat-7.0.54"
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
/bin/su ams $CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
/bin/su ams $CATALINA_HOME/bin/shutdown.sh
fi
;;
restart)
/bin/su ams $CATALINA_HOME/bin/shutdown.sh
/bin/su ams $CATALINA_HOME/bin/startup.sh
;;
*)
echo $"Usage: $0 {start|stop}"
exit 1
;;
esac
exit $RETVAL
  之后运行命令 chkconfig --add tomcat 就可以将脚本文件加入开机启动项了
  可以使用 chkconfig --list tomcat 查看tomcat脚本在各个runlevel下的启动情况
  每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 - 代替运行级。第二行对服务进行描述,可以用\ 跨行注释。
  例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for \
# higher quality random number generation.
  chkconfig使用范例:
chkconfig --list      #列出所有的系统服务
chkconfig --add httpd      #增加httpd服务
chkconfig --del httpd      #删除httpd服务
chkconfig --level httpd 2345 on      #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态
chkconfig --list      #列出系统所有的服务启动情况
chkconfig --list mysqld      #列出mysqld服务设置情况
chkconfig --level 35 mysqld on      #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig mysqld on      #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级
  参考:http://www.iyunv.com/panjun-Donet/archive/2010/08/10/1796873.html
  P.s.
  在tomcat文件的头几行的注释语句中,必须包含chkconfig和description两部分内容,否则在执行“chkconfig --add tomcat”时,会出现“tomcat服务不支持chkconfig”的错误提示。chkconfig这行表示缺省启动的运行级别以及启动和停止的优先级,如该服务缺省不再任何运行级启动,则以 - 代替运行级别。在tomcat中表示脚本在运行级2、3、4、5启动,启动优先权为20(优先权数越大服务启动的越晚),停止优先权为80。如果服务已经设置好了,那么通过编辑tomcat文件来修改启动优先权就不管用了,先删除服务再添加进来就可以了。
页: [1]
查看完整版本: Tomcat Linux下自启动