微服务 使用java 命令启动,写一个service 启动停止你的微服务的命令吧

#!/bin/sh# chkconfig:2345 10 90# description:tomcat service

JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=128M -XX:MaxPermSize=512m"CATALINA_PID=/opt/tomcat7/pid.log

CATALINA_HOME=/opt/tomcat7

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

cygwin=falsedarwin=falseos400=false

case "`uname`" inCYGWIN*) cygwin=true;;

Darwin*) darwin=true;;

OS400*) os400=true;;esac# resolve links- $0may be a softlink

PRG="$0"

while [ -h "$PRG" ]; do

ls=`ls -ld "$PRG"`

link=`expr "$ls" : ‘.*-> \(.*\)$‘`if expr "$link" : ‘/.*‘ > /dev/null; thenPRG="$link"

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

fi

done# Get standard environment variables

PRGDIR=`dirname "$PRG"`

# Only set CATALINA_HOMEifnot already set

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

# Copy CATALINA_BASE from CATALINA_HOMEifnot already set

[-z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME"# Ensure that any user defined CLASSPATH variables are not used on startup,

# but allow them to be specifiedin setenv.sh, in rare casewhen 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 areinUNIX format before anything is touchedif $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 OS400if $os400; then# Set job priority to standardfor 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=Yfi# Get standard Java environment variablesif $os400; then#-r will Only work on the os400 ifthe files are:

#1. owned by the user

#2. owned by the PRIMARY group of the user

# this will not workif 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"exit1

fi

fi# Add on extra jar files to CLASSPATHif [ ! -z "$CLASSPATH" ] ; thenCLASSPATH="$CLASSPATH":fiCLASSPATH="$CLASSPATH""$CATALINA_HOME"/bin/bootstrap.jarif [ -z "$CATALINA_OUT" ] ; thenCATALINA_OUT="$CATALINA_BASE"/logs/catalina.outfi

if [ -z "$CATALINA_TMPDIR" ] ; then# Define the java.io.tmpdir to useforCatalina

CATALINA_TMPDIR="$CATALINA_BASE"/tempfi# Add tomcat-juli.jar to classpath

# tomcat-juli.jar can be over-ridden per instanceif [ -r "$CATALINA_BASE/bin/tomcat-juli.jar" ] ; thenCLASSPATH=$CLASSPATH:$CATALINA_BASE/bin/tomcat-juli.jarelseCLASSPATH=$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jarfi# Bugzilla37848: When no TTY is available, don‘t output to console

have_tty=0

if [ "`tty`" != "not a tty" ]; thenhave_tty=1

fi# For Cygwin, switch paths to Windows format before running javaif $cygwin; thenJAVA_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 configfile ifit is present and an override has not been issuedif [ -z "$LOGGING_CONFIG" ]; then

if [ -r "$CATALINA_BASE"/conf/logging.properties ]; thenLOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties"

else# Bugzilla45585LOGGING_CONFIG="-Dnop"

fi

fi

if [ -z "$LOGGING_MANAGER" ]; thenLOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"

fi# Uncomment the following line tomakethe 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 -----------------------------------------# Bugzilla37848: only output this ifwe have a TTYif [ $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" ]; thenJPDA_TRANSPORT="dt_socket"

fi

if [ -z "$JPDA_ADDRESS" ]; thenJPDA_ADDRESS="8000"

fi

if [ -z "$JPDA_SUSPEND" ]; thenJPDA_SUSPEND="n"

fi

if [ -z "$JPDA_OPTS" ]; thenJPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"

fiCATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"

shift

fi

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

if $os400; then

echo "Debug command not available on OS400"exit1

else

shift

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

if [ $have_tty -eq 1 ]; then

echo "Using Security Manager"

fi

shiftexec"$_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"$@"startelseexec"$_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"$@"startfi

fi

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

shift

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

if [ $have_tty -eq 1 ]; then

echo "Using Security Manager"

fi

shifteval 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"$@"startelseeval 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"$@"startfi

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" ]; thenPID=`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."exit1

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."exit1

fi

fi

fi

else

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

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."exit1

fi

fi

fi

fi

fi

shift#touch "$CATALINA_OUT"

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

if [ $have_tty -eq 1 ]; then

echo "Using Security Manager"

fi

shifteval"\"$_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 "&"

elseeval"\"$_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\""-XX:+PrintGCDetails-XX:+PrintGCDateStamps-XX:+PrintGCTimeStamps-Xloggc:"$CATALINA_BASE"/logs/gc.log org.apache.catalina.startup.Bootstrap"$@" start "2>&1" | /usr/local/sbin/cronolog -S "$CATALINA_BASE"/logs/catalina_ln.out "$CATALINA_BASE"/logs/catalina.%Y-%m-%d-%H.out >> /dev/null &

fi

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

echo $! > "$CATALINA_PID"

fi

echo "Tomcat started."

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

shiftSLEEP=5

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

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

if [ $? -gt 0 ]; thenSLEEP=$1

shift

fi

fiFORCE=1

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

shiftFORCE=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."exit1

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."exit1

fi

fieval"\"$_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 -9 `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

ps -ef | grep tomcat | grep -v grep | awk ‘{print $2}‘ | sed -e "s/^/kill -9 /g"|sh -

echo "Tomcat stopped."breakfi

if [ $SLEEP -gt 0 ]; then

sleep 1

fi

if [ $SLEEP -eq 0 ]; then

if [ $FORCE -eq 0 ]; then

echo "Tomcat did not stop in time. PID file was not removed. To aid diagnostics a thread dump has been written to standard out."

kill -3 `cat "$CATALINA_PID"`fi

fiSLEEP=`expr $SLEEP - 1`done

fi

fiKILL_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" ]; thenPID=`cat "$CATALINA_PID"`echo "Killing Tomcat with the PID: $PID"

kill -9$PIDwhile [ $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# Set this to zeroelsea warning will be issued about the process still running

KILL_SLEEP_INTERVAL=0

echo "The Tomcat process has been killed."breakfi

if [ $KILL_SLEEP_INTERVAL -gt 0 ]; then

sleep 1

fiKILL_SLEEP_INTERVAL=`expr $KILL_SLEEP_INTERVAL - 1`done

if [ $KILL_SLEEP_INTERVAL -gt 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" ] ; theneval"\"$_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!"

fiexit $resultelif [ "$1" = "version" ] ; then

"$_RUNJAVA"-classpath "$CATALINA_HOME/lib/catalina.jar"org.apache.catalina.util.ServerInfoelse

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"exit1

fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值