Liinux环境Tomcat服务化与开机自启动

1、创建服务文件,服务名称为tomcat

cd /etc/rc.d/init.d/

vi tomcat

文件内容如下:

#!/bin/bash

#

# kenny [email protected],

# /etc/rc.d/init.d/tomcat

# init script for tomcat precesses

#

# processname: tomcat

扫描二维码关注公众号,回复: 259354 查看本文章

# description: tomcat is a j2se server

# chkconfig: 2345 86 16

# description: Start up the Tomcat servlet engine.

 

if [ -f /etc/init.d/functions ]; then

. /etc/init.d/functions

elif [ -f /etc/rc.d/init.d/functions ]; then

. /etc/rc.d/init.d/functions

else

echo -e "/atomcat: unable to locate functions lib. Cannot continue."

exit -1

fi

 

RETVAL=$?

CATALINA_HOME="/opt/apache-tomcat-7.0.61"

 

case "$1" in

start)

if [ -f $CATALINA_HOME/bin/startup.sh ];

then

echo $"Starting Tomcat"

$CATALINA_HOME/bin/startup.sh

fi

;;

stop)

if [ -f $CATALINA_HOME/bin/shutdown.sh ];

then

echo $"Stopping Tomcat"

$CATALINA_HOME/bin/shutdown.sh

fi

;;

*)

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

exit 1

;;

esac

 

exit $RETVAL

标蓝内容为服务的启动级别和开启、关闭的优先级

标红内容为tomcat的安装目录

2、为服务文件赋予执行权限

chmod +x tomcat

3、增加服务,服务默认开机自启动

chkconfig --add tomcat

4、设置tomcat的JAVA_HOME

vi /opt/apache-tomcat-7.0.61/bin/setclasspath.sh

红色部分为增加内容:

#!/bin/sh

 

# Licensed to the Apache Software Foundation (ASF) under one or more

# contributor license agreements.  See the NOTICE file distributed with

# this work for additional information regarding copyright ownership.

# The ASF licenses this file to You under the Apache License, Version 2.0

# (the "License"); you may not use this file except in compliance with

# the License.  You may obtain a copy of the License at

#

#     http://www.apache.org/licenses/LICENSE-2.0

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an "AS IS" BASIS,

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

# See the License for the specific language governing permissions and

# limitations under the License.

 

# -----------------------------------------------------------------------------

#  Set JAVA_HOME or JRE_HOME if not already set, ensure any provided settings

#  are valid and consistent with the selected start-up options and set up the

#  endorsed directory.

# -----------------------------------------------------------------------------

 

export JAVA_HOME=/opt/jdk1.7.0_07

export JRE_HOME=/opt/jdk1.7.0_07/jre

 

# Make sure prerequisite environment variables are set

if [ -z "$JAVA_HOME" -a -z "$JRE_HOME" ]; then

  if $darwin; then

    # Bugzilla 54390

    if [ -x '/usr/libexec/java_home' ] ; then

      export JAVA_HOME=`/usr/libexec/java_home`

    # Bugzilla 37284 (reviewed).

    elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then

      export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home"

    fi

  else

    JAVA_PATH=`which java 2>/dev/null`

    if [ "x$JAVA_PATH" != "x" ]; then

      JAVA_PATH=`dirname $JAVA_PATH 2>/dev/null`

      JRE_HOME=`dirname $JAVA_PATH 2>/dev/null`

    fi

    if [ "x$JRE_HOME" = "x" ]; then

      # XXX: Should we try other locations?

      if [ -x /usr/bin/java ]; then

        JRE_HOME=/usr

      fi

    fi

  fi

  if [ -z "$JAVA_HOME" -a -z "$JRE_HOME" ]; then

    echo "Neither the JAVA_HOME nor the JRE_HOME environment variable is defined"

    echo "At least one of these environment variable is needed to run this program"

    exit 1

  fi

fi

if [ -z "$JAVA_HOME" -a "$1" = "debug" ]; then

  echo "JAVA_HOME should point to a JDK in order to run in debug mode."

  exit 1

fi

if [ -z "$JRE_HOME" ]; then

  JRE_HOME="$JAVA_HOME"

fi

 

# If we're running under jdb, we need a full jdk.

if [ "$1" = "debug" ] ; then

  if [ "$os400" = "true" ]; then

    if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/javac ]; then

      echo "The JAVA_HOME environment variable is not defined correctly"

      echo "This environment variable is needed to run this program"

      echo "NB: JAVA_HOME should point to a JDK not a JRE"

      exit 1

    fi

  else

    if [ ! -x "$JAVA_HOME"/bin/java -o ! -x "$JAVA_HOME"/bin/jdb -o ! -x "$JAVA_HOME"/bin/javac ]; then

      echo "The JAVA_HOME environment variable is not defined correctly"

      echo "This environment variable is needed to run this program"

      echo "NB: JAVA_HOME should point to a JDK not a JRE"

      exit 1

    fi

  fi

fi

 

# Don't override the endorsed dir if the user has set it previously

if [ -z "$JAVA_ENDORSED_DIRS" ]; then

  # Set the default -Djava.endorsed.dirs argument

  JAVA_ENDORSED_DIRS="$CATALINA_HOME"/endorsed

fi

 

# Set standard commands for invoking Java, if not already set.

if [ -z "$_RUNJAVA" ]; then

  _RUNJAVA="$JRE_HOME"/bin/java

fi

if [ "$os400" != "true" ]; then

  if [ -z "$_RUNJDB" ]; then

    _RUNJDB="$JAVA_HOME"/bin/jdb

  fi

fi

猜你喜欢

转载自hengdu.iteye.com/blog/2374703
今日推荐