服务器上的tomcat可以直接使用catalina.sh启动,也可以使用linux的upstart封装成系统服务更加方便的进行管理,脚本放到_/etc/init_下,命名为tomcat.conf,即可用initctl stop/start/restart tomcat停止/启动/重启tomcat服务,脚本如下:
description "Tomcat Server"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
respawn limit 10 5
setuid root
setgid root
limit nofile 8192 8192
env JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre
env CATALINA_HOME=/opt/tomcat
# Modify these options as needed
env JAVA_OPTS="-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
env CATALINA_OPTS="-Xms2048M -Xmx2048M -XX:NewRatio=1 -server -XX:+UseParallelGC"
exec $CATALINA_HOME/bin/catalina.sh run >> "/opt/tomcat/logs/catalina.out" 2>&1
# cleanup temp directory after stop
post-stop script
rm -rf $CATALINA_HOME/temp/*
end script#
使用restart重启时要注意,不会将脚本内的改动实时加载运行,而是运行之前脚本的备份,加载运行最新的脚本内容需要先stop,在运行start,官方解释--http://upstart.ubuntu.com/cookbook/#initctl-restart
另,压测时如果并发线程过多,tomcat往往会报max open files的异常信息,导致请求失败,当使用upstart启动tomcat时,需要添加limit nofile 8192 8192指定tomcat进程能够打开的最大文件数,直接运行catalina.sh启动tomcat时,tomcat进行能够打开的最大文件数与启动tomcat的用户权限一致,可以使用命令--ulimit -n **** 来指定。