catalina.sh
上传用户:bj_pst
上传日期:2019-07-07
资源大小:7353k
文件大小:12k
源码类别:

Java编程

开发平台:

Java

  1. #!/bin/sh
  2. # -----------------------------------------------------------------------------
  3. # Start/Stop Script for the CATALINA Server
  4. #
  5. # Environment Variable Prequisites
  6. #
  7. #   CATALINA_HOME   May point at your Catalina "build" directory.
  8. #
  9. #   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
  10. #                   of a Catalina installation.  If not present, resolves to
  11. #                   the same directory that CATALINA_HOME points to.
  12. #
  13. #   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
  14. #                   or "run" command is executed.
  15. #
  16. #   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
  17. #                   the JVM should use (java.io.tmpdir).  Defaults to
  18. #                   $CATALINA_BASE/temp.
  19. #
  20. #   JAVA_HOME       Must point at your Java Development Kit installation.
  21. #                   Required to run the with the "debug" argument.
  22. #
  23. #   JRE_HOME        Must point at your Java Development Kit installation.
  24. #                   Defaults to JAVA_HOME if empty.
  25. #
  26. #   JAVA_OPTS       (Optional) Java runtime options used when the "start",
  27. #                   "stop", or "run" command is executed.
  28. #
  29. #   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"
  30. #                   command is executed. The default is "dt_socket".
  31. #
  32. #   JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"
  33. #                   command is executed. The default is 8000.
  34. #
  35. #   JPDA_SUSPEND    (Optional) Java runtime options used when the "jpda start"
  36. #                   command is executed. Specifies whether JVM should suspend
  37. #                   execution immediately after startup. Default is "n".
  38. #
  39. #   JPDA_OPTS       (Optional) Java runtime options used when the "jpda start"
  40. #                   command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,
  41. #                   and JPDA_SUSPEND are ignored. Thus, all required jpda
  42. #                   options MUST be specified. The default is:
  43. #
  44. #                   -Xdebug -Xrunjdwp:transport=$JPDA_TRANSPORT,
  45. #                       address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND
  46. #
  47. #   CATALINA_PID    (Optional) Path of the file which should contains the pid
  48. #                   of catalina startup java process, when start (fork) is used
  49. #
  50. # $Id: catalina.sh 795032 2009-07-17 10:41:20Z markt $
  51. # -----------------------------------------------------------------------------
  52. # OS specific support.  $var _must_ be set to either true or false.
  53. cygwin=false
  54. os400=false
  55. darwin=false
  56. case "`uname`" in
  57. CYGWIN*) cygwin=true;;
  58. OS400*) os400=true;;
  59. Darwin*) darwin=true;;
  60. esac
  61. # resolve links - $0 may be a softlink
  62. PRG="$0"
  63. while [ -h "$PRG" ]; do
  64.   ls=`ls -ld "$PRG"`
  65.   link=`expr "$ls" : '.*-> (.*)$'`
  66.   if expr "$link" : '/.*' > /dev/null; then
  67.     PRG="$link"
  68.   else
  69.     PRG=`dirname "$PRG"`/"$link"
  70.   fi
  71. done
  72. # Get standard environment variables
  73. PRGDIR=`dirname "$PRG"`
  74. # Only set CATALINA_HOME if not already set
  75. [ -z "$CATALINA_HOME" ] && CATALINA_HOME=`cd "$PRGDIR/.." ; pwd`
  76. # Ensure that any user defined CLASSPATH variables are not used on startup,
  77. # but allow them to be specified in setenv.sh, in rare case when it is needed.
  78. CLASSPATH=
  79. if [ -r "$CATALINA_BASE"/bin/setenv.sh ]; then
  80.   . "$CATALINA_BASE"/bin/setenv.sh
  81. elif [ -r "$CATALINA_HOME"/bin/setenv.sh ]; then
  82.   . "$CATALINA_HOME"/bin/setenv.sh
  83. fi
  84. # For Cygwin, ensure paths are in UNIX format before anything is touched
  85. if $cygwin; then
  86.   [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
  87.   [ -n "$JRE_HOME" ] && JRE_HOME=`cygpath --unix "$JRE_HOME"`
  88.   [ -n "$CATALINA_HOME" ] && CATALINA_HOME=`cygpath --unix "$CATALINA_HOME"`
  89.   [ -n "$CATALINA_BASE" ] && CATALINA_BASE=`cygpath --unix "$CATALINA_BASE"`
  90.   [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
  91. fi
  92. # For OS400
  93. if $os400; then
  94.   # Set job priority to standard for interactive (interactive - 6) by using
  95.   # the interactive priority - 6, the helper threads that respond to requests
  96.   # will be running at the same priority as interactive jobs.
  97.   COMMAND='chgjob job('$JOBNAME') runpty(6)'
  98.   system $COMMAND
  99.   # Enable multi threading
  100.   export QIBM_MULTI_THREADED=Y
  101. fi
  102. # Get standard Java environment variables
  103. if $os400; then
  104.   # -r will Only work on the os400 if the files are:
  105.   # 1. owned by the user
  106.   # 2. owned by the PRIMARY group of the user
  107.   # this will not work if the user belongs in secondary groups
  108.   BASEDIR="$CATALINA_HOME"
  109.   . "$CATALINA_HOME"/bin/setclasspath.sh 
  110. else
  111.   if [ -r "$CATALINA_HOME"/bin/setclasspath.sh ]; then
  112.     BASEDIR="$CATALINA_HOME"
  113.     . "$CATALINA_HOME"/bin/setclasspath.sh
  114.   else
  115.     echo "Cannot find $CATALINA_HOME/bin/setclasspath.sh"
  116.     echo "This file is needed to run this program"
  117.     exit 1
  118.   fi
  119. fi
  120. # Add on extra jar files to CLASSPATH
  121. if [ ! -z "$CLASSPATH" ] ; then
  122.   CLASSPATH="$CLASSPATH":
  123. fi
  124. CLASSPATH="$CLASSPATH""$CATALINA_HOME"/bin/bootstrap.jar
  125. if [ -z "$CATALINA_BASE" ] ; then
  126.   CATALINA_BASE="$CATALINA_HOME"
  127. fi
  128. if [ -z "$CATALINA_TMPDIR" ] ; then
  129.   # Define the java.io.tmpdir to use for Catalina
  130.   CATALINA_TMPDIR="$CATALINA_BASE"/temp
  131. fi
  132. # Bugzilla 37848: When no TTY is available, don't output to console
  133. have_tty=0
  134. if [ "`tty`" != "not a tty" ]; then
  135.     have_tty=1
  136. fi
  137. # For Cygwin, switch paths to Windows format before running java
  138. if $cygwin; then
  139.   JAVA_HOME=`cygpath --absolute --windows "$JAVA_HOME"`
  140.   JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`
  141.   CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`
  142.   CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`
  143.   CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`
  144.   CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
  145.   JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
  146. fi
  147. # Set juli LogManager if it is present
  148. if [ -r "$CATALINA_HOME"/bin/tomcat-juli.jar ]; then
  149.   JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
  150.   LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"
  151. else
  152.   # Bugzilla 45585
  153.   LOGGING_CONFIG="-Dnop"
  154. fi
  155. # ----- Execute The Requested Command -----------------------------------------
  156. # Bugzilla 37848: only output this if we have a TTY
  157. if [ $have_tty -eq 1 ]; then
  158.   echo "Using CATALINA_BASE:   $CATALINA_BASE"
  159.   echo "Using CATALINA_HOME:   $CATALINA_HOME"
  160.   echo "Using CATALINA_TMPDIR: $CATALINA_TMPDIR"
  161.   if [ "$1" = "debug" ] ; then
  162.     echo "Using JAVA_HOME:       $JAVA_HOME"
  163.   else
  164.     echo "Using JRE_HOME:        $JRE_HOME"
  165.   fi
  166.   echo "Using CLASSPATH:       $CLASSPATH"
  167. fi
  168. if [ "$1" = "jpda" ] ; then
  169.   if [ -z "$JPDA_TRANSPORT" ]; then
  170.     JPDA_TRANSPORT="dt_socket"
  171.   fi
  172.   if [ -z "$JPDA_ADDRESS" ]; then
  173.     JPDA_ADDRESS="8000"
  174.   fi
  175.   if [ -z "$JPDA_SUSPEND" ]; then
  176.     JPDA_SUSPEND="n"
  177.   fi
  178.   if [ -z "$JPDA_OPTS" ]; then
  179.     JPDA_OPTS="-Xdebug -Xrunjdwp:transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
  180.   fi
  181.   CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
  182.   shift
  183. fi
  184. if [ "$1" = "debug" ] ; then
  185.   if $os400; then
  186.     echo "Debug command not available on OS400"
  187.     exit 1
  188.   else
  189.     shift
  190.     if [ "$1" = "-security" ] ; then
  191.       echo "Using Security Manager"
  192.       shift
  193.       exec "$_RUNJDB" "$LOGGING_CONFIG" $JAVA_OPTS  $CATALINA_OPTS 
  194.         -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
  195.         -sourcepath "$CATALINA_HOME"/../../jakarta-tomcat-catalina/catalina/src/share 
  196.         -Djava.security.manager 
  197.         -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy 
  198.         -Dcatalina.base="$CATALINA_BASE" 
  199.         -Dcatalina.home="$CATALINA_HOME" 
  200.         -Djava.io.tmpdir="$CATALINA_TMPDIR" 
  201.         org.apache.catalina.startup.Bootstrap "$@" start
  202.     else
  203.       exec "$_RUNJDB" "$LOGGING_CONFIG" $JAVA_OPTS  $CATALINA_OPTS 
  204.         -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
  205.         -sourcepath "$CATALINA_HOME"/../../jakarta-tomcat-catalina/catalina/src/share 
  206.         -Dcatalina.base="$CATALINA_BASE" 
  207.         -Dcatalina.home="$CATALINA_HOME" 
  208.         -Djava.io.tmpdir="$CATALINA_TMPDIR" 
  209.         org.apache.catalina.startup.Bootstrap "$@" start
  210.     fi
  211.   fi
  212. elif [ "$1" = "run" ]; then
  213.   shift
  214.   if [ "$1" = "-security" ] ; then
  215.     echo "Using Security Manager"
  216.     shift
  217.     exec "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS  $CATALINA_OPTS 
  218.       -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
  219.       -Djava.security.manager 
  220.       -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy 
  221.       -Dcatalina.base="$CATALINA_BASE" 
  222.       -Dcatalina.home="$CATALINA_HOME" 
  223.       -Djava.io.tmpdir="$CATALINA_TMPDIR" 
  224.       org.apache.catalina.startup.Bootstrap "$@" start
  225.   else
  226.     exec "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS  $CATALINA_OPTS 
  227.       -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
  228.       -Dcatalina.base="$CATALINA_BASE" 
  229.       -Dcatalina.home="$CATALINA_HOME" 
  230.       -Djava.io.tmpdir="$CATALINA_TMPDIR" 
  231.       org.apache.catalina.startup.Bootstrap "$@" start
  232.   fi
  233. elif [ "$1" = "start" ] ; then
  234.   shift
  235.   touch "$CATALINA_BASE"/logs/catalina.out
  236.   if [ "$1" = "-security" ] ; then
  237.     echo "Using Security Manager"
  238.     shift
  239.     "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS  $CATALINA_OPTS 
  240.       -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
  241.       -Djava.security.manager 
  242.       -Djava.security.policy=="$CATALINA_BASE"/conf/catalina.policy 
  243.       -Dcatalina.base="$CATALINA_BASE" 
  244.       -Dcatalina.home="$CATALINA_HOME" 
  245.       -Djava.io.tmpdir="$CATALINA_TMPDIR" 
  246.       org.apache.catalina.startup.Bootstrap "$@" start 
  247.       >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
  248.       if [ ! -z "$CATALINA_PID" ]; then
  249.         echo $! > $CATALINA_PID
  250.       fi
  251.   else
  252.     "$_RUNJAVA" "$LOGGING_CONFIG" $JAVA_OPTS  $CATALINA_OPTS 
  253.       -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
  254.       -Dcatalina.base="$CATALINA_BASE" 
  255.       -Dcatalina.home="$CATALINA_HOME" 
  256.       -Djava.io.tmpdir="$CATALINA_TMPDIR" 
  257.       org.apache.catalina.startup.Bootstrap "$@" start 
  258.       >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
  259.       if [ ! -z "$CATALINA_PID" ]; then
  260.         echo $! > $CATALINA_PID
  261.       fi
  262.   fi
  263. elif [ "$1" = "stop" ] ; then
  264.   shift
  265.   FORCE=0
  266.   if [ "$1" = "-force" ]; then
  267.     shift
  268.     FORCE=1
  269.   fi
  270.   "$_RUNJAVA" $JAVA_OPTS 
  271.     -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -classpath "$CLASSPATH" 
  272.     -Dcatalina.base="$CATALINA_BASE" 
  273.     -Dcatalina.home="$CATALINA_HOME" 
  274.     -Djava.io.tmpdir="$CATALINA_TMPDIR" 
  275.     org.apache.catalina.startup.Bootstrap "$@" stop
  276.   if [ $FORCE -eq 1 ]; then
  277.     if [ ! -z "$CATALINA_PID" ]; then
  278.        echo "Killing: `cat $CATALINA_PID`"
  279.        kill -9 `cat $CATALINA_PID`
  280.     else
  281.        echo "Kill failed: $CATALINA_PID not set"
  282.     fi
  283.   fi
  284. elif [ "$1" = "version" ] ; then
  285.     "$_RUNJAVA"   
  286.       -classpath "$CATALINA_HOME/server/lib/catalina.jar" 
  287.       org.apache.catalina.util.ServerInfo
  288. else
  289.   echo "Usage: catalina.sh ( commands ... )"
  290.   echo "commands:"
  291.   if $os400; then
  292.     echo "  debug             Start Catalina in a debugger (not available on OS400)"
  293.     echo "  debug -security   Debug Catalina with a security manager (not available on OS400)"
  294.   else
  295.     echo "  debug             Start Catalina in a debugger"
  296.     echo "  debug -security   Debug Catalina with a security manager"
  297.   fi
  298.   echo "  jpda start        Start Catalina under JPDA debugger"
  299.   echo "  run               Start Catalina in the current window"
  300.   echo "  run -security     Start in the current window with security manager"
  301.   echo "  start             Start Catalina in a separate window"
  302.   echo "  start -security   Start in a separate window with security manager"
  303.   echo "  stop              Stop Catalina"
  304.   echo "  stop -force       Stop Catalina (followed by kill -KILL)"
  305.   echo "  version           What version of tomcat are you running?"
  306.   exit 1
  307. fi