Tomcat upstart指令碼,及max open files相關
阿新 • • 發佈:2018-12-03
伺服器上的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 **** 來指定。