• tomcat日志分割


    1、下载(最新版本)并解压,cd进入安装目录

        #  wget http://cronolog.org/download/cronolog-1.6.2.tar.gz

        # tar zxvf cronolog-1.6.2.tar.gz
        # cd cronolog-1.6.2

    2、运行安装
        # ./configure
        # make
        # make install

    3、查看cronolog安装后所在目录(验证安装是否成功)
        # which cronolog
       一般情况下显示为:/usr/local/sbin/cronolog

    要想分割tomcat7的catalina.out,需作如下工作:

    进入Tomcat的bin目录,打开catalina.sh文件,一般我们修改下面行中的内容(因为我们一般不会在-security条件下运行),

    (1)if [ -z "$CATALINA_OUT" ] ; then
      CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out

    fi
    改为:
    if [ -z "$CATALINA_OUT" ] ; then
      CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out
    fi
    (2)touch "$CATALINA_OUT"  
    if [ "$1" = "-security" ] ; then
        if [ $have_tty -eq 1 ]; then
          echo "Using Security Manager"
        fi
        shift
        eval "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS 
          -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
          -Djava.security.manager 
          -Djava.security.policy=="$CATALINA_BASE/conf/catalina.policy" 
          -Dcatalina.base="$CATALINA_BASE" 
          -Dcatalina.home="$CATALINA_HOME" 
          -Djava.io.tmpdir="$CATALINA_TMPDIR" 
          org.apache.catalina.startup.Bootstrap "$@" start 
          >> "$CATALINA_OUT" 2>&1 "&"      
      else
        eval "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS 
          -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
          -Dcatalina.base="$CATALINA_BASE" 
          -Dcatalina.home="$CATALINA_HOME" 
          -Djava.io.tmpdir="$CATALINA_TMPDIR" 
          org.apache.catalina.startup.Bootstrap "$@" start 
          >> "$CATALINA_OUT" 2>&1 "&"
           

      fi

      if [ ! -z "$CATALINA_PID" ]; then
        echo $! > "$CATALINA_PID"
      fi
    改为:
    #  touch "$CATALINA_OUT"  
    if [ "$1" = "-security" ] ; then
        if [ $have_tty -eq 1 ]; then
          echo "Using Security Manager"
        fi
        shift
        eval "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS 
          -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
          -Djava.security.manager 
          -Djava.security.policy=="$CATALINA_BASE/conf/catalina.policy" 
          -Dcatalina.base="$CATALINA_BASE" 
          -Dcatalina.home="$CATALINA_HOME" 
          -Djava.io.tmpdir="$CATALINA_TMPDIR" 
          org.apache.catalina.startup.Bootstrap "$@" start 2>&1 
          | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
      else
        eval "$_RUNJAVA" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS 
          -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
          -Dcatalina.base="$CATALINA_BASE" 
          -Dcatalina.home="$CATALINA_HOME" 
          -Djava.io.tmpdir="$CATALINA_TMPDIR" 
           org.apache.catalina.startup.Bootstrap "$@" start 2>&1 
           | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &

      fi

      if [ ! -z "$CATALINA_PID" ]; then
        echo $! > "$CATALINA_PID"
      fi

    配置完成的catalina.out

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

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

    # Control Script for the CATALINA Server

    #

    # Environment Variable Prerequisites

    #

    #   Do not set the variables in this script. Instead put them into a script

    #   setenv.sh in CATALINA_BASE/bin to keep your customizations separate.

    #

    #   CATALINA_HOME   May point at your Catalina "build" directory.

    #

    #   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions

    #                   of a Catalina installation.  If not present, resolves to

    #                   the same directory that CATALINA_HOME points to.

    #

    #   CATALINA_OUT    (Optional) Full path to a file where stdout and stderr

    #                   will be redirected.

    #                   Default is $CATALINA_BASE/logs/catalina.out

    #

    #   CATALINA_OPTS   (Optional) Java runtime options used when the "start",

    #                   "run" or "debug" command is executed.

    #                   Include here and not in JAVA_OPTS all options, that should

    #                   only be used by Tomcat itself, not by the stop process,

    #                   the version command etc.

    #                   Examples are heap size, GC logging, JMX ports etc.

    #

    #   CATALINA_TMPDIR (Optional) Directory path location of temporary directory

    #                   the JVM should use (java.io.tmpdir).  Defaults to

    #                   $CATALINA_BASE/temp.

    #

    #   JAVA_HOME       Must point at your Java Development Kit installation.

    #                   Required to run the with the "debug" argument.

    #

    #   JRE_HOME        Must point at your Java Runtime installation.

    #                   Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME

    #                   are both set, JRE_HOME is used.

    #

    #   JAVA_OPTS       (Optional) Java runtime options used when any command

    #                   is executed.

    #                   Include here and not in CATALINA_OPTS all options, that

    #                   should be used by Tomcat and also by the stop process,

    #                   the version command etc.

    #                   Most options should go into CATALINA_OPTS.

    #

    #   JAVA_ENDORSED_DIRS (Optional) Lists of of colon separated directories

    #                   containing some jars in order to allow replacement of APIs

    #                   created outside of the JCP (i.e. DOM and SAX from W3C).

    #                   It can also be used to update the XML parser implementation.

    #                   Defaults to $CATALINA_HOME/endorsed.

    #

    #   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"

    #                   command is executed. The default is "dt_socket".

    #

    #   JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"

    #                   command is executed. The default is localhost:8000.

    #

    #   JPDA_SUSPEND    (Optional) Java runtime options used when the "jpda start"

    #                   command is executed. Specifies whether JVM should suspend

    #                   execution immediately after startup. Default is "n".

    #

    #   JPDA_OPTS       (Optional) Java runtime options used when the "jpda start"

    #                   command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,

    #                   and JPDA_SUSPEND are ignored. Thus, all required jpda

    #                   options MUST be specified. The default is:

    #

    #                   -agentlib:jdwp=transport=$JPDA_TRANSPORT,

    #                       address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND

    #

    #   CATALINA_PID    (Optional) Path of the file which should contains the pid

    #                   of the catalina startup java process, when start (fork) is

    #                   used

    #

    #   LOGGING_CONFIG  (Optional) Override Tomcat's logging config file

    #                   Example (all one line)

    #                   LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"

    #

    #   LOGGING_MANAGER (Optional) Override Tomcat's logging manager

    #                   Example (all one line)

    #                   LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

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

    # OS specific support.  $var _must_ be set to either true or false.

    cygwin=false

    darwin=false

    os400=false

    case "`uname`" in

    CYGWIN*) cygwin=true;;

    Darwin*) darwin=true;;

    OS400*) os400=true;;

    esac

    # resolve links - $0 may be a softlink

    PRG="$0"

    while [ -h "$PRG" ]; do

      ls=`ls -ld "$PRG"`

      link=`expr "$ls" : '.*-> (.*)$'`

      if expr "$link" : '/.*' > /dev/null; then

        PRG="$link"

      else

        PRG=`dirname "$PRG"`/"$link"

      fi

    done

    # Get standard environment variables

    PRGDIR=`dirname "$PRG"`

    # Only set CATALINA_HOME if not already set

    [ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." >/dev/null; pwd`

    # Copy CATALINA_BASE from CATALINA_HOME if not already set

    [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"

    # Ensure that neither CATALINA_HOME nor CATALINA_BASE contains a colon

    # as this is used as the separator in the classpath and Java provides no

    # mechanism for escaping if the same character appears in the path.

    case $CATALINA_HOME in

      *:*) echo "Using CATALINA_HOME:   $CATALINA_HOME";

           echo "Unable to start as CATALINA_HOME contains a colon (:) character";

           exit 1;

    esac

    case $CATALINA_BASE in

      *:*) echo "Using CATALINA_BASE:   $CATALINA_BASE";

           echo "Unable to start as CATALINA_BASE contains a colon (:) character";

           exit 1;

    esac

    # Ensure that any user defined CLASSPATH variables are not used on startup,

    # but allow them to be specified in setenv.sh, in rare case when it is needed.

    CLASSPATH=

    if [ -r "$CATALINA_BASE/bin/setenv.sh" ]; then

      . "$CATALINA_BASE/bin/setenv.sh"

    elif [ -r "$CATALINA_HOME/bin/setenv.sh" ]; then

      . "$CATALINA_HOME/bin/setenv.sh"

    fi

    # For Cygwin, ensure paths are in UNIX format before anything is touched

    if $cygwin; then

      [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`

      [ -n "$JRE_HOME" ] && JRE_HOME=`cygpath --unix "$JRE_HOME"`

      [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`

      [ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"`

      [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`

    fi

    # For OS400

    if $os400; then

      # Set job priority to standard for interactive (interactive - 6) by using

      # the interactive priority - 6, the helper threads that respond to requests

      # will be running at the same priority as interactive jobs.

      COMMAND='chgjob job('$JOBNAME') runpty(6)'

      system $COMMAND

      # Enable multi threading

      export QIBM_MULTI_THREADED=Y

    fi

    # Get standard Java environment variables

    if $os400; then

      # -r will Only work on the os400 if the files are:

      # 1. owned by the user

      # 2. owned by the PRIMARY group of the user

      # this will not work if the user belongs in secondary groups

      . "$CATALINA_HOME"/bin/setclasspath.sh

    else

      if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then

        . "$CATALINA_HOME"/bin/setclasspath.sh

      else

        echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"

        echo "This file is needed to run this program"

        exit 1

      fi

    fi

    # Add on extra jar files to CLASSPATH

    if [ ! -z "$CLASSPATH" ] ; then

      CLASSPATH="$CLASSPATH":

    fi

    CLASSPATH="$CLASSPATH""$CATALINA_HOME"/bin/bootstrap.jar

    if [ -z "$CATALINA_OUT" ] ; then

      CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out

    fi

    if [ -z "$CATALINA_TMPDIR" ] ; then

      # Define the java.io.tmpdir to use for Catalina

      CATALINA_TMPDIR="$CATALINA_BASE"/temp

    fi

    # Add tomcat-juli.jar to classpath

    # tomcat-juli.jar can be over-ridden per instance

    if [ -r "$CATALINA_BASE/bin/tomcat-juli.jar" ] ; then

      CLASSPATH=$CLASSPATH:$CATALINA_BASE/bin/tomcat-juli.jar

    else

      CLASSPATH=$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jar

    fi

    # Bugzilla 37848: When no TTY is available, don't output to console

    have_tty=0

    if [ "`tty`" != "not a tty" ]; then

        have_tty=1

    fi

    # For Cygwin, switch paths to Windows format before running java

    if $cygwin; then

      JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`

      JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`

      CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`

      CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`

      CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`

      CLASSPATH=`cygpath --path --windows "$CLASSPATH"`

      JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`

    fi

    # Set juli LogManager config file if it is present and an override has not been issued

    if [ -z "$LOGGING_CONFIG" ]; then

      if [ -r "$CATALINA_BASE"/conf/logging.properties ]; then

        LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"

      else

        # Bugzilla 45585

        LOGGING_CONFIG="-Dnop"

      fi

    fi

    if [ -z "$LOGGING_MANAGER" ]; then

      LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

    fi

    # Uncomment the following line to make the umask available when using the

    # org.apache.catalina.security.SecurityListener

    #JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"

    # ----- Execute The Requested Command -----------------------------------------

    # Bugzilla 37848: only output this if we have a TTY

    if [ $have_tty -eq 1 ]; then

      echo "Using CATALINA_BASE:   $CATALINA_BASE"

      echo "Using CATALINA_HOME:   $CATALINA_HOME"

      echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"

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

        echo "Using JAVA_HOME:       $JAVA_HOME"

      else

        echo "Using JRE_HOME:        $JRE_HOME"

      fi

      echo "Using CLASSPATH:       $CLASSPATH"

      if [ ! -z "$CATALINA_PID" ]; then

        echo "Using CATALINA_PID:    $CATALINA_PID"

      fi

    fi

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

      if [ -z "$JPDA_TRANSPORT" ]; then

        JPDA_TRANSPORT="dt_socket"

      fi

      if [ -z "$JPDA_ADDRESS" ]; then

        JPDA_ADDRESS="localhost:8000"

      fi

      if [ -z "$JPDA_SUSPEND" ]; then

        JPDA_SUSPEND="n"

      fi

      if [ -z "$JPDA_OPTS" ]; then

        JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"

      fi

      CATALINA_OPTS="$JPDA_OPTS $CATALINA_OPTS"

      shift

    fi

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

      if $os400; then

        echo "Debug command not available on OS400"

        exit 1

      else

        shift

        if [ "$1" = "-security" ] ; then

          if [ $have_tty -eq 1 ]; then

            echo "Using Security Manager"

          fi

          shift

          exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS

            -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"

            -sourcepath "$CATALINA_HOME"/../../java

            -Djava.security.manager

            -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy

            -Dcatalina.base="$CATALINA_BASE"

            -Dcatalina.home="$CATALINA_HOME"

            -Djava.io.tmpdir="$CATALINA_TMPDIR"

            org.apache.catalina.startup.Bootstrap "$@" start

        else

          exec "$_RUNJDB" "$LOGGING_CONFIG" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS

            -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH"

            -sourcepath "$CATALINA_HOME"/../../java

            -Dcatalina.base="$CATALINA_BASE"

            -Dcatalina.home="$CATALINA_HOME"

            -Djava.io.tmpdir="$CATALINA_TMPDIR"

            org.apache.catalina.startup.Bootstrap "$@" start

        fi

      fi

    elif [ "$1" = "run" ]; then

      shift

      if [ "$1" = "-security" ] ; then

        if [ $have_tty -eq 1 ]; then

          echo "Using Security Manager"

        fi

        shift

        eval exec ""$_RUNJAVA"" ""$LOGGING_CONFIG"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS

          -Djava.endorsed.dirs=""$JAVA_ENDORSED_DIRS"" -classpath ""$CLASSPATH""

          -Djava.security.manager

          -Djava.security.policy==""$CATALINA_BASE/conf/catalina.policy""

          -Dcatalina.base=""$CATALINA_BASE""

          -Dcatalina.home=""$CATALINA_HOME""

          -Djava.io.tmpdir=""$CATALINA_TMPDIR""

          org.apache.catalina.startup.Bootstrap "$@" start

      else

        eval exec ""$_RUNJAVA"" ""$LOGGING_CONFIG"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS

          -Djava.endorsed.dirs=""$JAVA_ENDORSED_DIRS"" -classpath ""$CLASSPATH""

          -Dcatalina.base=""$CATALINA_BASE""

          -Dcatalina.home=""$CATALINA_HOME""

          -Djava.io.tmpdir=""$CATALINA_TMPDIR""

          org.apache.catalina.startup.Bootstrap "$@" start

      fi

    elif [ "$1" = "start" ] ; then

      if [ ! -z "$CATALINA_PID" ]; then

        if [ -f "$CATALINA_PID" ]; then

          if [ -s "$CATALINA_PID" ]; then

            echo "Existing PID file found during start."

            if [ -r "$CATALINA_PID" ]; then

              PID=`cat "$CATALINA_PID"`

              ps -p $PID >/dev/null 2>&1

              if [ $? -eq 0 ] ; then

                echo "Tomcat appears to still be running with PID $PID. Start aborted."

                echo "If the following process is not a Tomcat process, remove the PID file and try again:"

                ps -f -p $PID

                exit 1

              else

                echo "Removing/clearing stale PID file."

                rm -f "$CATALINA_PID" >/dev/null 2>&1

                if [ $? != 0 ]; then

                  if [ -w "$CATALINA_PID" ]; then

                    cat /dev/null > "$CATALINA_PID"

                  else

                    echo "Unable to remove or clear stale PID file. Start aborted."

                    exit 1

                  fi

                fi

              fi

            else

              echo "Unable to read PID file. Start aborted."

              exit 1

            fi

          else

            rm -f "$CATALINA_PID" >/dev/null 2>&1

            if [ $? != 0 ]; then

              if [ ! -w "$CATALINA_PID" ]; then

                echo "Unable to remove or write to empty PID file. Start aborted."

                exit 1

              fi

            fi

          fi

        fi

      fi

      shift

    #  touch "$CATALINA_OUT"

      if [ "$1" = "-security" ] ; then

        if [ $have_tty -eq 1 ]; then

          echo "Using Security Manager"

        fi

        shift

        eval ""$_RUNJAVA"" ""$LOGGING_CONFIG"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS

          -Djava.endorsed.dirs=""$JAVA_ENDORSED_DIRS"" -classpath ""$CLASSPATH""

          -Djava.security.manager

          -Djava.security.policy==""$CATALINA_BASE/conf/catalina.policy""

          -Dcatalina.base=""$CATALINA_BASE""

          -Dcatalina.home=""$CATALINA_HOME""

          -Djava.io.tmpdir=""$CATALINA_TMPDIR""

          org.apache.catalina.startup.Bootstrap "$@" start 2>&1

          | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &

      else

        eval ""$_RUNJAVA"" ""$LOGGING_CONFIG"" $LOGGING_MANAGER $JAVA_OPTS $CATALINA_OPTS

          -Djava.endorsed.dirs=""$JAVA_ENDORSED_DIRS"" -classpath ""$CLASSPATH""

          -Dcatalina.base=""$CATALINA_BASE""

          -Dcatalina.home=""$CATALINA_HOME""

          -Djava.io.tmpdir=""$CATALINA_TMPDIR""

          org.apache.catalina.startup.Bootstrap "$@" start 2>&1

           | /usr/local/sbin/cronolog "$CATALINA_OUT" >> /dev/null &

      fi

      if [ ! -z "$CATALINA_PID" ]; then

        echo $! > "$CATALINA_PID"

      fi

      echo "Tomcat started."

    elif [ "$1" = "stop" ] ; then

      shift

      SLEEP=5

      if [ ! -z "$1" ]; then

        echo $1 | grep "[^0-9]" >/dev/null 2>&1

        if [ $? -gt 0 ]; then

          SLEEP=$1

          shift

        fi

      fi

      FORCE=0

      if [ "$1" = "-force" ]; then

        shift

        FORCE=1

      fi

      if [ ! -z "$CATALINA_PID" ]; then

        if [ -f "$CATALINA_PID" ]; then

          if [ -s "$CATALINA_PID" ]; then

            kill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1

            if [ $? -gt 0 ]; then

              echo "PID file found but no matching process was found. Stop aborted."

              exit 1

            fi

          else

            echo "PID file is empty and has been ignored."

          fi

        else

          echo "$CATALINA_PID was set but the specified file does not exist. Is Tomcat running? Stop aborted."

          exit 1

        fi

      fi

      eval ""$_RUNJAVA"" $LOGGING_MANAGER $JAVA_OPTS

        -Djava.endorsed.dirs=""$JAVA_ENDORSED_DIRS"" -classpath ""$CLASSPATH""

        -Dcatalina.base=""$CATALINA_BASE""

        -Dcatalina.home=""$CATALINA_HOME""

        -Djava.io.tmpdir=""$CATALINA_TMPDIR""

        org.apache.catalina.startup.Bootstrap "$@" stop

      # stop failed. Shutdown port disabled? Try a normal kill.

      if [ $? != 0 ]; then

        if [ ! -z "$CATALINA_PID" ]; then

          echo "The stop command failed. Attempting to signal the process to stop through OS signal."

          kill -15 `cat "$CATALINA_PID"` >/dev/null 2>&1

        fi

      fi

      if [ ! -z "$CATALINA_PID" ]; then

        if [ -f "$CATALINA_PID" ]; then

          while [ $SLEEP -ge 0 ]; do

            kill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1

            if [ $? -gt 0 ]; then

              rm -f "$CATALINA_PID" >/dev/null 2>&1

              if [ $? != 0 ]; then

                if [ -w "$CATALINA_PID" ]; then

                  cat /dev/null > "$CATALINA_PID"

                  # If Tomcat has stopped don't try and force a stop with an empty PID file

                  FORCE=0

                else

                  echo "The PID file could not be removed or cleared."

                fi

              fi

              echo "Tomcat stopped."

              break

            fi

            if [ $SLEEP -gt 0 ]; then

              sleep 1

            fi

            if [ $SLEEP -eq 0 ]; then

              echo "Tomcat did not stop in time."

              if [ $FORCE -eq 0 ]; then

                echo "PID file was not removed."

              fi

              echo "To aid diagnostics a thread dump has been written to standard out."

              kill -3 `cat "$CATALINA_PID"`

            fi

            SLEEP=`expr $SLEEP - 1 `

          done

        fi

      fi

      KILL_SLEEP_INTERVAL=5

      if [ $FORCE -eq 1 ]; then

        if [ -z "$CATALINA_PID" ]; then

          echo "Kill failed: $CATALINA_PID not set"

        else

          if [ -f "$CATALINA_PID" ]; then

            PID=`cat "$CATALINA_PID"`

            echo "Killing Tomcat with the PID: $PID"

            kill -9 $PID

            while [ $KILL_SLEEP_INTERVAL -ge 0 ]; do

                kill -0 `cat "$CATALINA_PID"` >/dev/null 2>&1

                if [ $? -gt 0 ]; then

                    rm -f "$CATALINA_PID" >/dev/null 2>&1

                    if [ $? != 0 ]; then

                        if [ -w "$CATALINA_PID" ]; then

                            cat /dev/null > "$CATALINA_PID"

                        else

                            echo "The PID file could not be removed."

                        fi

                    fi

                    echo "The Tomcat process has been killed."

                    break

                fi

                if [ $KILL_SLEEP_INTERVAL -gt 0 ]; then

                    sleep 1

                fi

                KILL_SLEEP_INTERVAL=`expr $KILL_SLEEP_INTERVAL - 1 `

            done

            if [ $KILL_SLEEP_INTERVAL -lt 0 ]; then

                echo "Tomcat has not been killed completely yet. The process might be waiting on some system call or might be UNINTERRUPTIBLE."

            fi

          fi

        fi

      fi

    elif [ "$1" = "configtest" ] ; then

        eval ""$_RUNJAVA"" $LOGGING_MANAGER $JAVA_OPTS

          -Djava.endorsed.dirs=""$JAVA_ENDORSED_DIRS"" -classpath ""$CLASSPATH""

          -Dcatalina.base=""$CATALINA_BASE""

          -Dcatalina.home=""$CATALINA_HOME""

          -Djava.io.tmpdir=""$CATALINA_TMPDIR""

          org.apache.catalina.startup.Bootstrap configtest

        result=$?

        if [ $result -ne 0 ]; then

            echo "Configuration error detected!"

        fi

        exit $result

    elif [ "$1" = "version" ] ; then

        "$_RUNJAVA"   

          -classpath "$CATALINA_HOME/lib/catalina.jar"

          org.apache.catalina.util.ServerInfo

    else

      echo "Usage: catalina.sh ( commands ... )"

      echo "commands:"

      if $os400; then

        echo "  debug             Start Catalina in a debugger (not available on OS400)"

        echo "  debug -security   Debug Catalina with a security manager (not available on OS400)"

      else

        echo "  debug             Start Catalina in a debugger"

        echo "  debug -security   Debug Catalina with a security manager"

      fi

      echo "  jpda start        Start Catalina under JPDA debugger"

      echo "  run               Start Catalina in the current window"

      echo "  run -security     Start in the current window with security manager"

      echo "  start             Start Catalina in a separate window"

      echo "  start -security   Start in a separate window with security manager"

      echo "  stop              Stop Catalina, waiting up to 5 seconds for the process to end"

      echo "  stop n            Stop Catalina, waiting up to n seconds for the process to end"

      echo "  stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running"

      echo "  stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running"

      echo "  configtest        Run a basic syntax check on server.xml - check exit code for result"

      echo "  version           What version of tomcat are you running?"

      echo "Note: Waiting for the process to end and use of the -force option require that $CATALINA_PID is defined"

      exit 1

    fi

  • 相关阅读:
    linux下安装vsftp
    CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
    Centos编译安装PHP 5.5笔记
    centos使用更新更快的yum源
    使用Android Studio搭建Android集成开发环境
    设计模式(三)原型模式
    overridePendingTransition
    Android手势密码实现
    UserInfoActivity用户图像修改和退出登录
    设计模式(二)建造者模式
  • 原文地址:https://www.cnblogs.com/chuhongyun/p/11399742.html
Copyright © 2020-2023  润新知