系统运输
我的优化配置:
Java _ opts=-xms 16384 m-xmx 16384 m-xlog GC:/home/soft/880 _ GC.log-x ss256 k-xmn 6144 m-xx:permsize=1024 m-xx:maxperm size=1024 m-xx:survivor ratio=6- xx:maxter actatfullcollection-xx:cmsinitiatingoccupancyfraction=60 freflrupolicymspermb=0- xx:targetsurvivorratio=90-xx:60
Tomcat优化包括系统优化、Java虚拟机优化和Tomcat本身优化。
调整tomcat的占用内存
编辑catalina.sh文件
vim catalina.sh
已找到tomcat内存参数行。/JAVA_OPTS (如果找不到,则写入第一行。
3.Java _ opts=-xms 1024 m根据服务器的实际内存容量分别修改xmx 1520 m行中的两个参数。
xms启动tomcat的初始内存。 通常是服务器开机后可用内存减去100米
xmx是tomcat的最大消耗内存,通常为服务器开机后可用内存减去50米
一般应该使用的物理存储器的80% %u4F5C是堆大小。
这两个参数与tomcat接受的访问性能有关,必须根据服务器的实际内存情况进行设置。
Xms和Xmx的值最好相同。 内存回收速度加快,经常被GC
值的大小通常根据需要进行设定。 初始化堆的大小表示虚拟机启动时向系统请求的内存大小。 一般来说,这个参数不重要。 但是,某些APP应用程序在负载过大时会急剧消耗大量内存。 在这种情况下,此参数非常重要。 如果启动虚拟机时使用的内存较少,并且初始化了许多对象,则虚拟机必须反复增加内存才能满足使用要求。 因此,通常将-Xms和-Xmx设置为相同的大小,并且堆的最大值限制为系统使用的物理内存。 通常,数据密集型APP应用程序会使用持久性对象,并且内存使用量可能会快速增加。 如果APP应用程序所需的内存超过堆的最大值,虚拟机将通知内存溢出,并导致APP应用程序服务崩溃。 因此,建议将堆的最大值配置为可用内存最大值的80%%u3002
Tomcat默认可用内存为128MB,在实际生产中,这种程度的内存通常不够,需要加大
在/bin/catalina.sh中,添加以下配置:
JAVA_OPTS=\\\&; #039; -Xms[初始化内存大小] -Xmx[最大可用内存] : quot;
根据需要增加这两个参数的值。 例如:
Ava_opts=\\\&; quot; -XMS256m-xmx512m\\\&; quot;
表示初始化内存为256MB,最大可用内存为512MB。
必须考虑的是Java提供的垃圾回收机制。 虚拟机堆大小决定了虚拟机用于垃圾收集的时间和频率。 垃圾收集被接受的速度与应用有关,应该通过分析实际垃圾收集的时间和频率来调整。 如果山很大,完全垃圾的收集就会变慢,但频率会下降。 如果使堆大小和内存需求相匹配,则完全收集会更快,但会更频繁地收集。 更改堆大小的目的是最大限度地减少垃圾回收时间,以便在特定时间内最大化客户请求。 基准测试中,为了确保最高性能,请增加堆的大小,以防止整个基准测试中发生垃圾收集。
如果系统要花很多时间收集垃圾,请减小堆大小。 一次完整的垃圾收集不得超过3-5秒。 当垃圾收集遇到瓶颈时,需要指定世代的大小,检查垃圾收集的详细输出,研究垃圾收集参数对性能的影响。 通常,应该使用80 %的物理内存u4f5c作为堆大小。 增加处理器时,请记住增加内存。 因为分配可以并行进行,垃圾回收不是并行的。
调整tomcat的线程参数
编辑server.xml文件
在tomcat配置文件server.xml的Connector /配置中,与连接数相关的参数包括:
maxThreads=150意味着最多同时处理150个连接,Tomcat使用线程处理每个收到的请求。 此值表示Tomcat可以创建的最大线程数。 默认值为200。
minSpareThreads=25表示即使没有人在使用,也会打开这么多空闲线程等待
maxSpareThreads=75,如果最多能够空闲75个线程,例如,在给定时刻80人访问,然后谁也不再访问,则tomcat关闭5个空闲线程,剩下80个空闲线程(如果创建的线程超过此值,Tomcat将关闭不再需要的套接字线程。 默认值50 )
acceptCount=100,同时连接的人数达到maxThreads时,也可以接收排队的连接数,超过时直接返回拒绝连接。 (如果所有可用处理请求的线程数都已使用,则指定可以进入处理队列的请求数,而不处理超过此数的请求。 默认值100 )
其中,与最大连接数相关联的参数是maxThreads和acceptCount。 要增加并发连接数,必须增大这两个参数。
web server允许的最大连接数还取决于操作系统的内核参数设置。 通常,Windows为2000个左右,Linux为1000个左右。 tomcat5的配置示例:
连接器端口=8080
max threads=150 minsparethreads=25 maxsparethreads=75
acceptCount=100/
主要是调整maxThreads和acceptCount的值
在tomcat配置文档server.xml的配置中,与连接数相关的其他参数包括:
enableLookups是否反向查找域名,默认值为true。 要提高处理能力,必须将其配置为false
连接时间输出网络连接超时。 默认值为60000,单位为毫秒。 设置为0表示不超时。 这样配置的话会有危险性。 通常可以设定为30000毫秒。
maxKeepAliveRequestsnginx动态传输到tomcat。 nginx不能保留。 另一方面,tomcat端默认打开keepalive,等待keepalive的timeout。 默认情况下使用连接时间输出。
因此,必须设置tomcat的超时时间,并关闭tomcat的keepalive。 否则,会产生大量的tomcat套接字时间等待。
如果maxKeepAliveRequests=1,则可以避免tomcat生成大量的TIME_WAIT连接,在一定程度上避免tomcat的假死。
要设置tomcat/conf/server.xml :
maxKeepAliveRequests=1
连接时间out=20000
maxKeepAliveRequests=1 ##表示每个连接只响应一次并关闭,不等待timeout
connector executor=Tomcat thread pool
端口=8080 protocol=http/1.1
connection time out=30000 maxkeepaliverequests=1
redirect port=8443 buffer size=8192 socked buffer=65536 accept count=200 /
bufferSize输入流缓冲区大小,默认值2048 bytes。
压缩传输、on/off/force值、off默认值
贴上我的设定档:
catalina _ opts=-DCOM.sun.management.JMX remote-DCOM.sun.management.JMX remote.authenticate=false-DCOM.DCOM
Java _ opts=-xms 16384 m-xmx 16384 m-xlog GC:/home/soft/880 _ GC.log-x ss256 k-xmn 6144 m-xx:permsize=1024 m-xx:maxperm size=1024 m-xx:survivor ratio=6- xx:maxter l collection-xx:cmsinitiatingoccupancyfraction=60-xx:cmsinitiatingocupancyfraction ymspermb=0- xx:targetsurvivivorrvorrrrrrition
# Java _ opts=-xms 4096 m-xmx 16384 m-xx:maxperm size=1024 m
# osspecificsupport.$ var _ must _ besettoeithertrueorfalse。
cygwin=false
darwin=false
os400=false
case`uname`in
Cygwin*(Cygwin=true;
Darwin*(Darwin=true;
OS400* ) os400=true;
欧洲航空
#resolvelinks-$0maybeasoftlink
PRG=$0
while[-h$PRG]; do
ls=`ls-ld$PRG `
link=`Expr$ls:\\\&; quot; *\\&; quot; ((() ) ) )。( ( () ( ( ( ( ( ) ( ( ) ( ) ) ) ) ) ) ) ) ) )
ifExpr$link:\\&; quot; /.*\&; quot; /dev/null; then
PRG=$link
else
PRG=`dirname$PRG`/$link
fi
唐
# getstandardenvironmentvariables
PRGDIR=`dirname$PRG `
# onlysetcatalina _ homeifnotalreadyset
[-z $ catalina _ home ] catalina _ home=` CD $ PRG dir/./dev/null; pwd `
# copy catalina _ basefromcatalina _ homeifnotalreadyset
[-z $ catalina _ base ] catalina _ base=$ catalina _ home
# ensurethatneithercatalina _ homenorcatalina _ basecontainsacolon
# asthisisusedastheseparatorintheclasspathandjavaprovidesno
# mechanismforescapingifthesamecharacterappearsinthepath。
case$CATALINA_HOMEin
* * echousingcatalina _ home:$ catalina _ home;
echounabletostartascatalina _ homecontainsacolon (:)字符;
exit1;
欧洲航空
case$CATALINA_BASEin
* * ( echousingcatalina _ base:$ catalina _ base;
echounabletostartascatalina _ basecontainsacolon (:)字符;
exit1;
欧洲航空
# ensurethatanyuserdefinedclasspathvariablesarenotusedonstartup、
# butallowthemtobespecifiedinsetenv.sh,inrarecasewhenitisneeded。
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
#ForCygwin,ensurepathsareinunixformatbeforeanythingistouched
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 $ class path ] class path=` cygpath-- path-- UNIX $ class path `
fi
#ForOS400
if$os400; then
# setjobprioritytostandardforinteractive ( interactive-6 ) byusing
#theinteractivepriority-6、thelperthreadsthatrespondtorequests
# willberunningatthesamepriorityasinteractivejobs。
command=\\&; quot; chgjobjob ( ( ( ( () ) ) $jobname ( ( ) ( ) ) ) ( runpty(6)6) ) ) ) ) ) )。
system$COMMAND
#启用多重读取
exportQIBM_MULTI_THREADED=Y
fi
# getstandardjavaenvironmentvariables
if$os400; then
#-rwillonlyworkontheos 400 ifthefilesare :
#1.ownedbytheuser
#2. ownedbytheprimarygroupoftheuser
# thiswillnotworkiftheuserbelongsinsecondarygroups
. $ catalina _ home/bin/SETC lasspath.sh
else
if [-r $ catalina _ home/bin/SETC lasspath.sh ]; then
. $ catalina _ home/bin/SETC lasspath.sh
else
echocannotfind $ catalina _ home/bin/SETC lasspath.sh
echothisfileisneededtorunthisprogram
exit1
fi
fi
#AddonextrajarfilestoCLASSPATH
if[! -z$CLASSPATH]; then
CLASSPATH=$CLASSPATH :
fi
class path=$ class path $ catalina _ home/bin/bootstrap.jar
if[-z$CATALINA_OUT]; then
catalina _ out=$ catalina _ base/logs/catalina.out
fi
if[-z$CATALINA_TMPDIR]; then
# define the Java.io.tmpdirtouseforcatalina
catalina _ tmpdir=$ catalina _ base/temp
fi
#Addtomcat-juli.jartoclasspath
# Tomcat-juli.jarcanbeover-riddenperinstance
if [-r $ catalina _ base/bin/Tomcat-juli.jar ]; then
class path=$ class path:$ catalina _ base/bin/Tomcat-juli.jar
else
class path=$ class path:$ catalina _ home/bin/Tomcat-juli.jar
fi
# bugzilla 37848:whennottyisavailable,don\\\&; #039; toutputtoconsole
have_tty=0
( if ) tty )!=notatty]; then
have_tty=1
fi
#ForCygwin,switchpathstowindowsformatbeforerunningjava
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 `
class path=` cygpath---path---windows $ class path `
Java _ endorsed _ dirs=` cygpath-- path-- windows $ Java _ endorsed _ dirs `
fi
# setjulilogmanagerconfigfileifitispresentandanoverridehasnotbeenissued
if[-z$LOGGING_CONFIG]; then
if [-r $ catalina _ base/conf/logging.properties ]; then
logging _ config=-DJ ava.util.logging.config.file=$ catalina _ base/conf/logging.properties
else
#Bugzilla45585
LOGGING_CONFIG=-Dnop
fi
fi
if[-z$LOGGING_MANAGER]; then
logging _ manager=-DJ ava.util.logging.manager=org.Apache.juli.classloaderlogmanager
fi
# uncommentthefollowinglinetomaketheumaskavailablewhenusingthe
# org.Apache.catalina.security.security listener
# Java _ opts=$ Java _ opts-dorg.Apache.catalina.security.security listener.umask=` umask `
----------------executetherequestedcommand-------------- executetherequestedcommmand
# bugzilla 37848:onlyoutputthisifwehaveatty
if[$have_tty-eq1]; then
echousingcatalina _ base:$ catalina _ base
echousingcatalina _ home:$ catalina _ home
echousingcatalina _ tmpdir:$ catalina _ tmpdir
if[$1=debug]; then
echoUsingJAVA_HOME:$JAVA_HOME
else
echoUsingJRE_HOME:$JRE_HOME
fi
echoUsingCLASSPATH:$CLASSPATH
if[! -z$CATALINA_PID]; then
echousingcatalina _ 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
jda _ opts=-agent lib:jdwp=transport=$ JPDA _ transport,address=$JPDA_ADDRESS,server=y,suspend=$jpend
fi
catalina _ opts=$ JPDA _ opts $ catalina _ opts
shift
fi
if[$1=debug]; then
if$os400; then
echodebugcommandnotavailableonos 400
exit1
else
shift
if[$1=-security]; then
if[$have_tty-eq1]; then
电子安全管理器
fi
shift
exec $ _ run jdb $ logging _ config $ logging _ manager $ Java _ opts $ catalina _ opts _ _ & amp; quot;
- DJ ava.endorsed.dirs=$ Java _ endorsed _ dirs-class path $ class path\\ & amp; quot;
- source path $ catalina _ home/././Java\\
-Djava.security.manager\\\\&; quot;
- DJ ava.security.policy==$ catalina _ base/conf/catalina.policy\\ & amp; quot;
- d catalina.base=$ catalina _ base\& amp; quot;
- d catalina.home=$ catalina _ home\\
- DJ ava.io.tmpdir=$ catalina _ tmpdir\\
org.Apache.catalina.startup.bootstrap $ @ start
else
exec $ _ run jdb $ logging _ config $ logging _ manager $ Java _ opts $ catalina _ opts _ _ & amp; quot;
- DJ ava.endorsed.dirs=$ Java _ endorsed _ dirs-class path $ class path\\ & amp; quot;
- source path $ catalina _ home/././Java\\
- d catalina.base=$ catalina _ base\& amp; quot;
- d catalina.home=$ catalina _ home\\
- DJ ava.io.tmpdir=$ catalina _ tmpdir\\
org.Apache.catalina.startup.bootstrap $ @ start
fi
fi
elif[$1=run]; then
shift
if[$1=-security]; then
if[$have_tty-eq1]; then
电子安全管理器
fi
shift
evalexec\\\&; quot; $_runJava\\&; quot; \&; quot; \&; quot; \&; quot; \&; quot; $logging_config\\&; quot; $logging_manager$Java_opts
-DJAva.endorsed.dirs=\\\\\&; quot; Java_endorsed_dirs\\\&; quot; -classpath\\\\&; quot; \$classpath\\\\&; quot;
-Djava.security.manager\\\\&; quot;
- DJ ava.security.policy==\\\\ & amp; quot; $ catalina _ base/conf/catalina.policy\\ & amp; quot;
-dcatalina.base=\\\\&; quot; $catalina_base\\\\&; quot; \&; quot;
-dcatalina.home=\\\\\&; quot; catalina_home\\\\&; quot;
-DJAva.io.tmpdir=\\\\&; quot; catalina_tmpdir\\\\&; quot;
org.Apache.catalina.startup.bootstrap $ @ start
else
evalexec\\\&; quot; $_runJava\\&; quot; \&; quot; \&; quot; \&; quot; \&; quot; $logging_config\\&; quot; $logging_manager$Java_opts
-DJAva.endorsed.dirs=\\\\\&; quot; Java_endorsed_dirs\\\&; quot; -classpath\\\\&; quot; \$classpath\\\\&; quot;
-dcatalina.base=\\\\&; quot; $catalina_base\\\\&; quot; \&; quot;
-dcatalina.home=\\\\\&; quot; catalina_home\\\\&; quot;
-DJAva.io.tmpdir=\\\\&; quot; catalina_tmpdir\\\\&; quot;
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
echoexistingpidfilefoundduringstart。
if[-r$CATALINA_PID]; then
PID=`cat$CATALINA_PID `
ps-p$PID/dev/null21
if[$? -eq0]; then
echotomcatappearstostillberunningwithpid $ PID.start aborted。
echoifthefollowingprocessisnotatomcatprocess,removethePIDfileandtryagain :
ps-f-p$PID
exit1
else
修复/清除字符文件。
rm-f$CATALINA_PID/dev/null21
if[$?=0); then
if[-w$CATALINA_PID]; then
cat/dev/null$CATALINA_PID
else
echounabletoremoveorclearstalepidfile.start aborted。
exit1
fi
fi
fi
else
echounabletoreadpidfile.start aborted。
exit1
fi
else
rm-f$CATALINA_PID/dev/null21
if[$?=0); then
if[! -w$CATALINA_PID]; then
echounabletoremoveorwritetoemptypidfile.start aborted。
exit1
fi
fi
fi
fi
fi
shift
touch$CATALINA_OUT
if[$1=-security]; then
if[$have_tty-eq1]; then
电子安全管理器
fi
shift
eval\\\&; quot; $_runJava\\&; quot; \&; quot; \&; quot; \&; quot; \&; quot; $logging_config\\&; quot; \&; quot; $ logging _ manager $ Java _ opts $ cava
-DJAva.endorsed.dirs=\\\\\&; quot; Java_endorsed_dirs\\\&; quot; -classpath\\\\&; quot; \$classpath\\\\&; quot;
-Djava.security.manager\\\\&; quot;
- DJ ava.security.policy==\\\\ & amp; quot; $ catalina _ base/conf/catalina.policy\\ & amp; quot;
-dcatalina.base=\\\\&; quot; $catalina_base\\\\&; quot; \&; quot;
-dcatalina.home=\\\\\&; quot; catalina_home\\\\&; quot;
-DJAva.io.tmpdir=\\\\&; quot; catalina_tmpdir\\\\&; quot;
org.Apache.catalina.startup.bootstrap $ @ start\\ & amp; quot;
$CATALINA_OUT21
else
eval\\\&; quot; $_runJava\\&; quot; \&; quot; \&; quot; \&; quot; \&; quot; $logging_config\\&; quot; \&; quot; $ logging _ manager $ Java _ opts $ cava
-DJAva.endorsed.dirs=\\\\\&; quot; Java_endorsed_dirs\\\&; quot; -classpath\\\\&; quot; \$classpath\\\\&; quot;
-dcatalina.base=\\\\&; quot; $catalina_base\\\\&; quot; \&; quot;
-dcatalina.home=\\\\\&; quot; catalina_home\\\\&; quot;
-DJAva.io.tmpdir=\\\\&; quot; catalina_tmpdir\\\\&; quot;
org.Apache.catalina.startup.bootstrap $ @ start\\ & amp; quot;
$CATALINA_OUT21
fi
if[! -z$CATALINA_PID]; then
echo$! $CATALINA_PID
fi
echoTomcatstarted
elif[$1=stop]; then
shift
SLEEP=5
if[! -z$1]; then
echo$1|grep[^0-9]/dev/null21
if[$? -gt0] ); 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 21
if[$? -gt0] ); then
echopidfilefoundbutnomatchingprocesswasfound.stop aborted。
exit1
fi
else
echopidfileisemptyandhasbeenignored。
fi
else
echo\\\&; quot; catalina _ pidwassetbutthespecifiedfiledoesnotexist.istomcatrunning? 已停止。
exit1
fi
fi
eval\\\&; quot; $_runJava\\&; quot; $ logging _ manager $ Java _ opts\_ & amp; quot;
-DJAva.endorsed.dirs=\\\\\&; quot; Java_endorsed_dirs\\\&; quot; -classpath\\\\&; quot; \$classpath\\\\&; quot;
-dcatalina.base=\\\\&; quot; $catalina_base\\\\&; quot; \&; quot;
-dcatalina.home=\\\\\&; quot; catalina_home\\\\&; quot;
-DJAva.io.tmpdir=\\\\&; quot; catalina_tmpdir\\\\&; quot;
org.Apache.catalina.startup.bootstrap $ @ stop
# stop failed.shutdownportdisabled? Tryanormalkill。
if[$?=0); then
if[! -z$CATALINA_PID]; then
echothestopcommandfailed.atemptingtosignaltheprocesstostopthroughossignal。
kill-15 ` cat $ catalina _ PID `/dev/null 21
fi
fi
if[! -z$CATALINA_PID]; then
if[-f$CATALINA_PID]; then
while[$SLEEP-ge0]; do
kill-0 ` cat $ catalina _ PID `/dev/null 21
if[$? -gt0] ); then
rm-f$CATALINA_PID/dev/null21
if[$?=0); then
if[-w$CATALINA_PID]; then
cat/dev/null$CATALINA_PID
#Iftomcathasstoppeddon\\&; quot; tttryandforceastopwithanemptypidfile
FORCE=0
else
echothepidfilecouldnotberemovedorcleared。
fi
fi
echoTomcatstopped。
布莱克
fi
if[$SLEEP-gt0]; then
第一阶段
fi
if[$SLEEP-eq0]; then
echoTomcatdidnotstopintime。
if[$FORCE-eq0]; then
加密文件擦除。
fi
echotoaiddiagnosticsathreaddumphasbeenwrittentostandardout。
kill-3`cat$CATALINA_PID `
fi
SLEEP=`expr$SLEEP-1 `
唐
fi
fi
KILL_SLEEP_INTERVAL=5
if[$FORCE-eq1]; then
if[-z$CATALINA_PID]; then
echokillfailed:\\&; quot; $catalina_pidnotset
else
if[-f$CATALINA_PID]; then
PID=`cat$CATALINA_PID `
echokillingtomcatwiththepid:$ PID
kill-9$PID
while [ $ kill _ sleep _ interval-ge0 ]; do
kill-0 ` cat $ catalina _ PID `/dev/null 21
if[$? -gt0] ); then
rm-f$CATALINA_PID/dev/null21
if[$?=0); then
if[-w$CATALINA_PID]; then
cat/dev/null$CATALINA_PID
else
echothepidfilecouldnotberemoved。
fi
fi
echothetomcatprocesshasbeenkilled。
布莱克
fi
if[$KILL_SLEEP_INTERVAL-gt0]; then
第一阶段
fi
kill _ sleep _ interval=` expr $ kill _ sleep _ interval-1 `
唐
if[$KILL_SLEEP_INTERVAL-lt0]; then
echotomcathasnotbeenkilledcompletelyyet.theprocessmightbewaitingonsomesystemcallormightbeuninterruptible。
fi
fi
fi
fi
elif[$1=configtest]; then
eval\\\&; quot; $_runJava\\&; quot; $ logging _ manager $ Java _ opts\_ & amp; quot;
-DJAva.endorsed.dirs=\\\\\&; quot; Java_endorsed_dirs\\\&; quot; -classpath\\\\&; quot; \$classpath\\\\&; quot;
-dcatalina.base=\\\\&; quot; $catalina_base\\\\&; quot; \&; quot;
-dcatalina.home=\\\\\&; quot; catalina_home\\\\&; quot;
-DJAva.io.tmpdir=\\\\&; quot; catalina_tmpdir\\\\&; quot;
org.Apache.catalina.startup.bootstrap config test
result=$?
if[$result-ne0]; then
echoConfigurationerrordetected!
fi
退出$ result
elif[$1=version]; then
$_RUNJAVA\\\\&; quot;
- class path $ catalina _ home/lib/catalina.jar\\ & amp; quot;
org.Apache.catalina.util.server info
else
Echousage:Catalina.sh(commands . ) )。
echocommands :
if$os400; then
echodebugstartcatalinainadebugger ( notavailableonos 400 ) )。
echo调试-安全调试链接
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更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码官网:www.chenqinet.cn