• CenOS系统中安装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 # 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 # ./configure
    10 
    11 # make
    12 
    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 prefix.
     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

  • 相关阅读:
    poj2181 jumping cow
    poj2184
    POJ 1189 钉子和小球
    uva11019矩阵匹配器D316
    noip2015运输计划
    [LintCode] Last Position of Target
    [LintCode] K Closest Points
    [LintCode] K Closest Numbers In Sorted Array
    [LintCode] Closest Number in Sorted Array
    [LintCode] Perfect Squares
  • 原文地址:https://www.cnblogs.com/gao241/p/2688308.html
Copyright © 2020-2023  润新知