Tomcat upstart脚本,及max open files相关

服务器上的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 **** 来指定。

猜你喜欢

转载自my.oschina.net/u/580449/blog/898369