zoukankan      html  css  js  c++  java
  • linux下自动启动tomcat

    http://blog.csdn.net/prettywolf/archive/2007/03/10/1525911.aspx

    以下文章参考了网上的文章,但经过自己试验和整理。

    linux自动启动程序的方法很多,但是有时某些程序要设置环境变量的就会引起麻烦。

    tomcat启动时需要设置JAVA_HOME,CLASSPATH等环境变量,

    很多文章说设置好环境变量,把/path/startup.sh放到rc.local中就可以实现自动启动了,

    但是实际操作发现,很多的linux版本因为安全原因,rc.local中忽略了export命令,也就是说在这里设置的export都是无效的,以下为转贴的方法:

    在Linux下,Tomcat可以作为一个守护进程来启动以及停止,这个必须借助于项目commons-daemon中的jsvc工具。Tomcat安装完后就带有这个工具的源码{tomcat}/bin/jsvc.tar.gz。按照下列命令安装这个工具:

    解压: tar zxvf jsvc.tar.gz

    配置: cd jsvc-src

    chmod +x configure

    。/configure --with-java=/usr/local/jdk1.5.0

    编译: make

    检验: 。/jsvc -help

    jsvc工具本身带了一个脚本(在native目录下)用来启动和停止Tomcat守护进程,但是在试验中发现该脚本无法设置为自动启动,显示的错误信息是:tomcat 服务不支持 chkconfig,因此修改了此脚本,可以从此处下载:tomcat.txt

    程序代码:(网上大部分代码有错误,经修改运行OK)

    #!/bin/sh

    #

    # Startup Script for Tomcat5

    #

    # chkconfig: 345 87 13

    # description: Tomcat Daemon

    # processname: jsvc

    # pidfile: /var/run/jsvc.pid

    # config:

    #

    # Source function library.

    #/etc/init.d/functions 我的系统没有这个文件,不过注释掉这行没影响

    #

    prog=tomcat

    #

    # Small shell script to show how to start/stop Tomcat using jsvc

    # If you want to have Tomcat running on port 80 please modify the server.xml

    # file:

    #

    # <!-- Define a non-SSL HTTP/1.1 Connector on port 80 -->

    # <Connector className="org.apache.catalina.connector.http.HttpConnector"

    # port="80" minProcessors="5" maxProcessors="75"

    # enableLookups="true" redirectPort="8443"

    # acceptCount="10" debug="0" connectionTimeout="60000"/>

    #

    # You need a developement version of Tomcat (Apache Tomcat/4.1-dev)

    #

    # Adapt the following lines to your configuration

    JAVA_HOME=/usr/local/jdk1.5.0

    CATALINA_HOME=/usr/local/apache-tomcat-5.5.16

    DAEMON_HOME=$CATALINA_HOME/bin

    TOMCAT_USER=tomcat5

    TMP_DIR=/var/tmp

    CATALINA_OPTS=

    CLASSPATH=$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/bin/commons-daemon.jar:$CATALINA_HOME/bin/bootstrap.jar

    start(){

    echo -n $"Starting $prog: "

        #

        # Start Tomcat

        #

    $DAEMON_HOME/jsvc \
        -user $TOMCAT_USER \
        -home $JAVA_HOME \
        -Dcatalina.home=$CATALINA_HOME \
        -Djava.io.tmpdir=$TMP_DIR \
        -outfile $CATALINA_HOME/logs/catalina.out \
        -errfile '&1' \
        $CATALINA_OPTS \
        -cp $CLASSPATH \
        org.apache.catalina.startup.Bootstrap
        #网上文章上面几行中有空行,会导致出错

        # To get a verbose JVM

        #-verbose \

        # To get a debug of jsvc.

        #-debug \

        RETVAL=$?

        [ $RETVAL = 0 ] && touch /var/lock/subsys/jsvc

    #我的系统没有/var/lock/subsys这个文件夹,建立一个OK
        [ $RETVAL = 0 ] && echo success || echo failure

        echo

        return $RETVAL

    }

    stop(){

        echo -n $"Stopping $prog: "

        #

        # Stop Tomcat

        #

        PID=`cat /var/run/jsvc.pid`

        kill $PID

        RETVAL=$?

        [ $RETVAL = 0 ] && rm /var/lock/subsys/jsvc

        [ $RETVAL = 0 ] && echo success || echo failure

        echo

        return $RETVAL

    }

    case "$1" in

    start)

    start

    ;;

    stop)

    stop

    ;;

    restart|reload)

    stop

    start

    ;;

    *)

    echo "Usage $0 start/stop"

    exit 1;;

    esac

    修改下载的脚本里面有关路径的信息以及要启动Tomcat的用户(用户必须已存在)

    拷贝脚本到/etc/rc.d/init.d目录下的tomcat文件,给该脚本赋予可执行权限

    chown tomcat5 tomcat

    chmod +x tomcat

    你可以使用命令

    /etc/rc.d/init.d/tomcat start|stop

    来验证守护进程是否可以正常启动和停止。

    接下来就是把这个脚本设置成系统启动时自动执行,系统关闭时自动停止,使用如下命令:

    chkconfig --add tomcat

    重新启动系统后可以启动的过程中看到Starting Tomcat ..... [OK]的信息,这样就完成设置过程。

    自已再补充一点,要把apache-tomcat-5.5.16下的work所有者设成tomcat5 ,否则会出错。



    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1525911

  • 相关阅读:
    【struts2】【2】添加interceptor出错
    C++本质:类的赋值运算符=的重载,以及深拷贝和浅拷贝
    Garbage Collection Essence.Net中Garbage Collection深入探讨
    数据结构C#实现二叉查找树的创建,查找,以及各种递归(非递归)遍历算法
    C#中不安全代码的编写和指针的应用
    C#中的安全策略
    系统诊断概述如何通过windbg来dump特定process的memory.
    经典数据结构之栈的应用迷宫问题
    CPU Scheduling进程调度算法
    ASP.NET中将检索出的数据写入Exel形成Report的一种solution
  • 原文地址:https://www.cnblogs.com/cy163/p/1159740.html
Copyright © 2011-2022 走看看