zoukankan      html  css  js  c++  java
  • Tomcat start/stop script

    http://blog.valotas.com/2011/05/tomcat-initd-script.html

    http://blog.botha.us/sarel/?p=101

    #!/bin/bash
    #
    # tomcat7     This shell script takes care of starting and stopping Tomcat
    #
    # chkconfig: - 80 20
    #
    ### BEGIN INIT INFO
    # Provides: tomcat7
    # Required-Start: $network $syslog
    # Required-Stop: $network $syslog
    # Default-Start:
    # Default-Stop:
    # Description: Release implementation for Servlet 2.5 and JSP 2.1
    # Short-Description: start and stop tomcat
    ### END INIT INFO
    
    ## Source function library.
    #. /etc/rc.d/init.d/functions
    export JAVA_HOME=/usr/java/default
    export JAVA_OPTS="-Dfile.encoding=UTF-8 \
      -Dcatalina.logbase=/var/log/tomcat7 \
      -Dnet.sf.ehcache.skipUpdateCheck=true \
      -XX:+DoEscapeAnalysis \
      -XX:+UseConcMarkSweepGC \
      -XX:+CMSClassUnloadingEnabled \
      -XX:+UseParNewGC \
      -XX:MaxPermSize=128m \
      -Xms512m -Xmx512m"
    export PATH=$JAVA_HOME/bin:$PATH
    TOMCAT_HOME=/usr/share/tomcat7
    SHUTDOWN_WAIT=20
    
    tomcat_pid() {
      echo `ps aux | grep org.apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'`
    }
    
    start() {
      pid=$(tomcat_pid)
      if [ -n "$pid" ] 
      then
        echo "Tomcat is already running (pid: $pid)"
      else
        # Start tomcat
        echo "Starting tomcat"
        ulimit -n 100000
        umask 007
        /bin/su -p -s /bin/sh tomcat $TOMCAT_HOME/bin/startup.sh
      fi
    
    
      return 0
    }
    
    stop() {
      pid=$(tomcat_pid)
      if [ -n "$pid" ]
      then
        echo "Stoping Tomcat"
        /bin/su -p -s /bin/sh tomcat $TOMCAT_HOME/bin/shutdown.sh
    
        let kwait=$SHUTDOWN_WAIT
        count=0;
        until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
        do
          echo -n -e "\nwaiting for processes to exit";
          sleep 1
          let count=$count+1;
        done
    
        if [ $count -gt $kwait ]; then
          echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds"
          kill -9 $pid
        fi
      else
        echo "Tomcat is not running"
      fi
     
      return 0
    }
    
    case $1 in
    start)
      start
    ;; 
    stop)   
      stop
    ;; 
    restart)
      stop
      start
    ;;
    status)
      pid=$(tomcat_pid)
      if [ -n "$pid" ]
      then
        echo "Tomcat is running with pid: $pid"
      else
        echo "Tomcat is not running"
      fi
    ;; 
    esac    
    exit 0
    #!/bin/bash
    #
    # tomcat This shell script takes care of starting and stopping Tomcat
    # It also handles killing Tomcat in case it doesn’t stop gracefully
    # It uses a PID file to determine the process ID so it should work with multiple Tomcat instances on one server
    #
    # chkconfig: - 80 20
    #
    ### BEGIN INIT INFO
    # Provides: tomcat
    # Required-Start: $network $syslog
    # Required-Stop: $network $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Description: Tomcat service
    # Short-Description: start and stop tomcat
    ### END INIT INFO
    
    ## Source function library.
    #. /etc/rc.d/init.d/functions
    
    # Begin configuration section
    
    export JAVA_HOME=/opt/jdk1.6.0
    
    # These options are used when Tomcat is started
    export CATALINA_OPTS=”-Xmx512m -XX:-UseGCOverheadLimit \
    -Dcom.sun.management.jmxremote=true \
    -Dcom.sun.management.jmxremote.port=511 \
    -Dcom.sun.management.jmxremote.authenticate=false \
    -Dcom.sun.management.jmxremote.ssl=false”
    
    export LD_LIBRARY_PATH=/usr/local/apr/lib
    
    # Set this to the path where this Tomcat is installed
    TOMCAT_HOME=/opt/tomcat
    
    # Number of seconds to wait after nicely requesting stop
    SHUTDOWN_WAIT=10
    
    # This should be a different file for each tomcat
    CATALINA_PID=/var/run/tomcat.pid
    
    RUNASUSER=root
    
    # End configuration section
    
    export PATH=$JAVA_HOME/bin:$PATH
    export CATALINA_PID
    
    start() {
    pid=`cat $CATALINA_PID 2>/dev/null`
    if [ -n "$pid" ]
    then
    echo “Tomcat is already running (pid: $pid)”
    else
    # Start tomcat
    echo “Starting tomcat”
    touch $CATALINA_PID
    chown $RUNASUSER $CATALINA_PID
    /bin/su -p -s /bin/sh $RUNASUSER $TOMCAT_HOME/bin/catalina.sh start
    fi
    
    return 0
    }
    
    stop() {
    pid=`cat $CATALINA_PID 2>/dev/null`
    if [ -n "$pid" ]
    then
    /bin/su -p -s /bin/sh $RUNASUSER $TOMCAT_HOME/bin/catalina.sh stop
    echo -n “Stopping Tomcat”
    
    let kwait=$SHUTDOWN_WAIT
    count=0;
    until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
    do
    echo -n “.”;
    sleep 1
    let count=$count+1;
    done
    
    echo “”
    
    if [ $count -gt $kwait ]; then
    echo “process is still running after $SHUTDOWN_WAIT seconds, killing process”
    kill $pid
    sleep 3
    
    # if it’s still running use kill -9
    if [ `ps -p $pid | grep -c $pid` -gt '0' ]; then
    echo “process is still running, using kill -9kill -9 $pid
    sleep 3
    fi
    
    fi
    
    if [ `ps -p $pid | grep -c $pid` -gt '0' ]; then
    echo “process is still running, I give up”
    else
    # success, delete PID file
    rm $CATALINA_PID
    fi
    else
    echo “Tomcat is not running”
    fi
    return 0
    }
    
    case $1 in
    start)
    start
    ;;
    stop)
    stop
    ;;
    restart)
    stop
    start
    ;;
    status)
    pid=$(tomcat_pid)
    if [ -n "$pid" ]
    then
    echo “Tomcat is running with pid: $pid”
    else
    echo “Tomcat is not running”
    fi
    ;;
    esac
    exit 0
  • 相关阅读:
    学习中的坑
    友链
    CF1131E String Multiplication 题解
    CF438E The Child and Binary Tree 题解
    [WC2005]友好的生物题解
    [IOI2016]shortcut 题解
    CF911F [Tree Destruction] 题解
    状压dp技巧之轮廓线 hdu1400/poj2411acwing291 蒙德里安的梦想
    TG-WC2021 笔记
    拯救世界2题解
  • 原文地址:https://www.cnblogs.com/androidme/p/3012775.html
Copyright © 2011-2022 走看看