CenOS系统中安装Tomcat7并设置为自启动服务

长平狐 发布于 2013/03/12 13:15
阅读 914
收藏 2

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 # tar zxvf apache-tomcat-7.0.27.zip

 

b)        移动到其他目录

1 # mv apache-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)         停止服务

1 # ./shutdown.sh 

3、 可能出现的问题

a)         Java未先安装,或未正确配置JAVA_HOME系统环境变量

b)         Linux系统的防火墙8080端口未被设置为远程可访问

4、配置tomcat由tomcat用户自启动(使用jsvc

a)         编译安装jsvc

1 # export CATALINA_HOME=/home/tomcat/tomcat 2 3 # cd $CATALINA_HOME/bin 4 5 # tar xvfz commons-daemon-native.tar.gz 6 7 # cd commons-daemon-1.0.8-native-src/unix 8 9 # ./configure10 11 # make12 13 # cp jsvc ../..

 

b)        编写自启动脚本:用root用户登录,创建脚本tomcat7

1 # vi /etc/init.d/tomcat7

 

添加如下脚本:

1 #! /bin/sh 2 3 4 5 # chkconfig: 35 96 04 6 7 # description: Apache-Tomcat service script. 8 9 10 11 # Version: 12 13 # 2008-01-17-01 14 15 # By: 16 17 # Typhoon.Free.Wolf. 18 19 20 21 # Service name. 22 23 SVC_NAME="tomcat7" 24 25 # Lock file. 26 27 LOCK_FILE="/var/lock/subsys/tfw_tomcat" 28 29 # Installation fix. 30 31 APP_HOME="/home/tomcat/tomcat" 32 33 # The process name to monitor. 34 35 APP_PROC="java" 36 37 # Authorize user. 38 39 APP_USER="tomcat" 40 41 42 43 SLEEP_START=5 44 45 SLEEP_STOP=$SLEEP_START 46 47 48 49 # Importing functions. 50 51 flg_func=0 52 53 if [ -f /etc/init.d/functions ] ; then 54 55 . /etc/init.d/functions 56 57 flg_func=1 58 59 elif [ -f /etc/rc.d/init.d/functions ] ; then 60 61 . /etc/rc.d/init.d/functions 62 63 flg_func=1 64 65 fi 66 67 68 69 # Templete. 70 71 # Return: 72 73 # FLG_PROC_ON means process is there. 74 75 # FLG_PROC_OFF means process not exists. 76 77 # Other means error. 78 79 FLG_PROC_ON=1 80 81 FLG_PROC_OFF=0 82 83 probe() { 84 85 srch_rst=$(ps -A|grep $APP_PROC|awk '{print $4}') 86 87 for rst in $srch_rst ; do 88 89 if [ $APP_PROC = $rst ] ; then 90 91 return $FLG_PROC_ON 92 93 fi 94 95 done 96 97 return $FLG_PROC_OFF 98 99 } 100 101 102 103 # Templete. 104 105 # Shows OK. 106 107 # Return: 108 109 echo_ok() { 110 111 case $flg_func in 112 113 1) 114 115 echo_success 116 117 echo "" 118 119 ;; 120 121 *) 122 123 echo "" 124 125 echo " [ OK ]" 126 127 ;; 128 129 esac 130 131 } 132 133 134 135 # Templete. 136 137 # Shows Passed. 138 139 # Return: 140 141 echo_pass() { 142 143 case $flg_func in 144 145 1) 146 147 echo_passed 148 149 echo "" 150 151 ;; 152 153 *) 154 155 echo "" 156 157 echo " [PASSED]" 158 159 ;; 160 161 esac 162 163 } 164 165 166 167 # Templete. 168 169 # Shows Failed. 170 171 # Return: 172 173 echo_bad() { 174 175 case $flg_func in 176 177 1) 178 179 echo_failure 180 181 echo "" 182 183 ;; 184 185 *) 186 187 echo "" 188 189 echo " [FAILED]" 190 191 ;; 192 193 esac 194 195 } 196 197 198 199 # Templete. 200 201 # Start section. 202 203 # Return: 204 205 _start() { 206 207 probe 208 209 proc=$? 210 211 echo "" 212 213 echo "Starting $SVC_NAME..." 214 215 216 217 if (touch $LOCK_FILE) ; then 218 219 echo_ok 220 221 else 222 223 echo_bad 224 225 fi 226 227 } 228 229 230 231 start() { 232 233 probe 234 235 proc=$? 236 237 echo "" 238 239 echo "Starting $SVC_NAME..." 240 241 242 243 if [ $FLG_PROC_OFF = $proc ] ; then 244 245 if (su - $APP_USER -c "$APP_HOME/bin/startup.sh") ; then 246 247 sleep $SLEEP_START 248 249 if (touch $LOCK_FILE) ; then 250 251 echo_ok 252 253 else 254 255 echo_pass 256 257 echo "" 258 259 fi 260 261 else 262 263 echo_bad 264 265 fi 266 267 elif [ $FLG_PROC_ON = $proc ] ; then 268 269 if (touch $LOCK_FILE) ; then 270 271 echo_passed 272 273 echo "" 274 275 else 276 277 echo_bad 278 279 fi 280 281 fi 282 283 } 284 285 286 287 # Templete. 288 289 # Stop section. 290 291 # Return: 292 293 _stop() { 294 295 probe 296 297 proc=$? 298 299 echo "" 300 301 echo "Stopping $SVC_NAME..." 302 303 304 305 if (rm -Rf $LOCK_FILE) ; then 306 307 echo_ok 308 309 else 310 311 echo_bad 312 313 fi 314 315 } 316 317 318 319 stop() { 320 321 probe 322 323 proc=$? 324 325 echo "" 326 327 echo "Stopping $SVC_NAME..." 328 329 330 331 if [ $FLG_PROC_OFF = $proc ] ; then 332 333 if (rm -Rf $LOCK_FILE) ; then 334 335 echo_passed 336 337 echo "" 338 339 else 340 341 echo_bad 342 343 fi 344 345 elif [ $FLG_PROC_ON = $proc ] ; then 346 347 if (su - $APP_USER -c "$APP_HOME/bin/shutdown.sh") ; then 348 349 sleep $SLEEP_STOP 350 351 if (rm -Rf $LOCK_FILE) ; then 352 353 echo_ok 354 355 else 356 357 echo_pass 358 359 echo "" 360 361 fi 362 363 else 364 365 echo_bad 366 367 fi 368 369 fi 370 371 } 372 373 374 375 # Parse command line parameters. 376 377 case $1 in 378 379 start) 380 381 start 382 383 ;; 384 385 stop) 386 387 stop 388 389 ;; 390 391 restart) 392 393 stop 394 395 start 396 397 ;; 398 399 *) 400 401 # Print help 402 403 echo "Usage: $0 {start|stop|restart}" 404 405 exit 1 406 407 ;; 408 409 esac 410 411 exit 0

 

注意修改APP_HOME为tomcat实际安装路径,APP_USER为启动tomcat的用户。

c)         设置tomcat自启动服务

使用如下命令给tomcat7增加执行权限

1 # chmod +x tomcat7

 

将tomcat添加到启动服务中

1 # chkconfig --add tomcat7 2 3 # chkconfig --level 234 tomcat7 on

 

可以用如下命令确认是否配置成功

1 # chkconfig --list tomcat7

 

之后就可以用service来控制tomcat的启动和停止了。

1 # service tomcat7 start 2 # service tomcat7 stop

 

查看/home/tomcat/tomcat/logs/catalina-daemon.out,确认没有error


原文链接:http://www.cnblogs.com/gao241/archive/2012/09/17/2688308.html
加载中
返回顶部
顶部