设为首页 收藏本站
查看: 996|回复: 0

[经验分享] CentOS配置Tomcat以服务方式启动

[复制链接]

尚未签到

发表于 2016-5-10 10:07:19 | 显示全部楼层 |阅读模式
在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 # tar zxvf apache-tomcat-7.0.27.zip

b)        移动到其他目录

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

# ./shutdown.sh

3、 可能出现的问题

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

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

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

a)        编译安装jsvc

# export CATALINA_HOME=/home/tomcat/tomcat

# cd $CATALINA_HOME/bin

# tar xvfz commons-daemon-native.tar.gz

# cd commons-daemon-1.0.8-native-src/unix

# ./configure

# make

# cp jsvc ../..

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

# vi /etc/init.d/tomcat7

添加如下脚本:

#! /bin/sh

  

# chkconfig: 35 96 04

# description: Apache-Tomcat service script.

  

# Version:

#        2008-01-17-01

# By:

#        Typhoon.Free.Wolf.

  

# Service name.

SVC_NAME="tomcat7"

# Lock file.

LOCK_FILE="/var/lock/subsys/tfw_tomcat"

# Installation prefix.

APP_HOME="/home/tomcat/tomcat"

# The process name to monitor.

APP_PROC="java"

# Authorize user.

APP_USER="tomcat"

  

SLEEP_START=5

SLEEP_STOP=$SLEEP_START

  

# Importing functions.

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_ON means process is there.

#        FLG_PROC_OFF means process not exists.

#        Other means error.

FLG_PROC_ON=1

FLG_PROC_OFF=0

probe() {

        srch_rst=$(ps -A|grep $APP_PROC|awk '{print $4}')

        for rst in $srch_rst ; do

                if [ $APP_PROC = $rst ] ; then

                        return $FLG_PROC_ON

                fi

        done

        return $FLG_PROC_OFF

}

  

# Templete.

#        Shows OK.

# Return:

echo_ok() {

        case $flg_func in

                1)

                        echo_success

                        echo ""

                ;;

                *)

                        echo ""

                        echo "        [  OK  ]"

                ;;

        esac

}

  

# Templete.

#        Shows Passed.

# Return:

echo_pass() {

        case $flg_func in

                1)

                        echo_passed

                        echo ""

                ;;

                *)

                        echo ""

                        echo "        [PASSED]"

                ;;

        esac

}

  

# Templete.

#        Shows Failed.

# Return:

echo_bad() {

        case $flg_func in

                1)

                        echo_failure

                        echo ""

                ;;

                *)

                        echo ""

                        echo "        [FAILED]"

                ;;

        esac

}

  

# Templete.

#        Start section.

# 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.

#        Stop section.

# 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

}

  

# Parse command line parameters.

case $1 in

        start)

                start

        ;;

        stop)

                stop

        ;;

        restart)

                stop

                start

        ;;

        *)

                # Print help

                echo "Usage: $0 {start|stop|restart}"

                exit 1

        ;;

esac

exit 0

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

c)        设置tomcat自启动服务

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

# chmod +x tomcat7

将tomcat添加到启动服务中

# chkconfig --add tomcat7

# chkconfig --level 234 tomcat7 on

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

# chkconfig --list tomcat7

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

# service tomcat7 start

# service tomcat7 stop

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-215049-1-1.html 上篇帖子: CentOS 安装BitTorrent Sync详细步骤 下篇帖子: Centos下Redis的安装及配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表