CentOS配置Tomcat以服务方式启动
在CentOS系统中安装Tomcat7并设置为自启动服务。
1、软件
a)下载apache-tomcat-7.0.27地址:http://apache.etoak.com/tomcat/tomcat-7/v7.0.27/bin/apache-tomcat-7.0.27.tar.gz
b)如无特殊说明,本文档操作用户为tomcat
2、安装
a)解压
1#tarzxvfapache-tomcat-7.0.27.zip
b)移动到其他目录
#mvapache-tomcat-7.0.27/home/tomcat/tomcat
c)启动Tomcat服务
#cd/home/tomcat/tomcat/bin
#./startup.sh
d)检查是否启动成功
在本机浏览器中访问URL:http://localhost:8080/
会出现Tomcat的欢迎页面
注:如果想远程通过浏览器访问,则在远程浏览器中输入http://<ip>:8080/
<ip>可通过在本地机器上输入命令ifconfig查看
如果未能访问到tomcat的欢迎页面,需要查看本机的防火墙设置,是否打开了端口8080
e)停止服务
#./shutdown.sh
3、可能出现的问题
a)Java未先安装,或未正确配置JAVA_HOME系统环境变量
b)Linux系统的防火墙8080端口未被设置为远程可访问
4、配置tomcat由tomcat用户自启动(使用jsvc)
a)编译安装jsvc
#exportCATALINA_HOME=/home/tomcat/tomcat
#cd$CATALINA_HOME/bin
#tarxvfzcommons-daemon-native.tar.gz
#cdcommons-daemon-1.0.8-native-src/unix
#./configure
#make
#cpjsvc../..
b)编写自启动脚本:用root用户登录,创建脚本tomcat7
#vi/etc/init.d/tomcat7
添加如下脚本:
#!/bin/sh
#chkconfig:359604
#description:Apache-Tomcatservicescript.
#Version:
#2008-01-17-01
#By:
#Typhoon.Free.Wolf.
#Servicename.
SVC_name="tomcat7"
#Lockfile.
LOCK_FILE="/var/lock/subsys/tfw_tomcat"
#Installationprefix.
APP_HOME="/home/tomcat/tomcat"
#Theprocessnametomonitor.
APP_PROC="java"
#Authorizeuser.
APP_USER="tomcat"
SLEEP_START=5
SLEEP_STOP=$SLEEP_START
#Importingfunctions.
flg_func=0
if[-f/etc/init.d/functions];then
./etc/init.d/functions
flg_func=1
elif[-f/etc/rc.d/init.d/functions];then
./etc/rc.d/init.d/functions
flg_func=1
fi
#Templete.
#Return:
#FLG_PROC_ONmeansprocessisthere.
#FLG_PROC_OFFmeansprocessnotexists.
#Othermeanserror.
FLG_PROC_ON=1
FLG_PROC_OFF=0
probe(){
srch_rst=$(ps-A|grep$APP_PROC|awk'{print$4}')
forrstin$srch_rst;do
if[$APP_PROC=$rst];then
return$FLG_PROC_ON
fi
done
return$FLG_PROC_OFF
}
#Templete.
#ShowsOK.
#Return:
echo_ok(){
case$flg_funcin
1)
echo_success
echo""
;;
*)
echo""
echo"[OK]"
;;
esac
}
#Templete.
#ShowsPassed.
#Return:
echo_pass(){
case$flg_funcin
1)
echo_passed
echo""
;;
*)
echo""
echo"[PASSED]"
;;
esac
}
#Templete.
#ShowsFailed.
#Return:
echo_bad(){
case$flg_funcin
1)
echo_failure
echo""
;;
*)
echo""
echo"[FAILED]"
;;
esac
}
#Templete.
#Startsection.
#Return:
_start(){
probe
proc=$?
echo""
echo"Starting$SVC_NAME..."
if(touch$LOCK_FILE);then
echo_ok
else
echo_bad
fi
}
start(){
probe
proc=$?
echo""
echo"Starting$SVC_NAME..."
if[$FLG_PROC_OFF=$proc];then
if(su-$APP_USER-c"$APP_HOME/bin/startup.sh");then
sleep$SLEEP_START
if(touch$LOCK_FILE);then
echo_ok
else
echo_pass
echo""
fi
else
echo_bad
fi
elif[$FLG_PROC_ON=$proc];then
if(touch$LOCK_FILE);then
echo_passed
echo""
else
echo_bad
fi
fi
}
#Templete.
#Stopsection.
#Return:
_stop(){
probe
proc=$?
echo""
echo"Stopping$SVC_NAME..."
if(rm-Rf$LOCK_FILE);then
echo_ok
else
echo_bad
fi
}
stop(){
probe
proc=$?
echo""
echo"Stopping$SVC_NAME..."
if[$FLG_PROC_OFF=$proc];then
if(rm-Rf$LOCK_FILE);then
echo_passed
echo""
else
echo_bad
fi
elif[$FLG_PROC_ON=$proc];then
if(su-$APP_USER-c"$APP_HOME/bin/shutdown.sh");then
sleep$SLEEP_STOP
if(rm-Rf$LOCK_FILE);then
echo_ok
else
echo_pass
echo""
fi
else
echo_bad
fi
fi
}
#Parsecommandlineparameters.
case$1in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
#Printhelp
echo"Usage:$0{start|stop|restart}"
exit1
;;
esac
exit0
注意修改APP_HOME为tomcat实际安装路径,APP_USER为启动tomcat的用户。
c)设置tomcat自启动服务
使用如下命令给tomcat7增加执行权限
#chmod+xtomcat7
将tomcat添加到启动服务中
#chkconfig--addtomcat7
#chkconfig--level234tomcat7on
可以用如下命令确认是否配置成功
#chkconfig--listtomcat7
之后就可以用service来控制tomcat的启动和停止了。
#servicetomcat7start
#servicetomcat7stop
查看/home/tomcat/tomcat/logs/catalina-daemon.out,确认没有error