在部署tomcat的時候發現一個問題,當啓動此tomcat的用戶全部退出之後tomcat服務竟然掛掉了。ssh連上又自動開始運行了。經查是進程被kill子進程也被kill了。(深層次原因我也不懂,菜雞一枚。。。)
解決辦法。https://tomcat.apache.org/tomcat-7.0-doc/setup.html
tomcat版本8.0.21
jdk版本1.8
server ubunut14.04
需要軟件gcc make
解壓tomcat_home/bin/commons-daemon-native.tar.gz
cd到解壓的目錄
編譯 ./configure
make
打開daemon.sh
配置JAVA_HOME
配置CATALINA_HOME
配置server啓動參數 -jvm server -Xmx -Xms ...
配置tomcat user = current user(root 會有問題)
配置tomcat Security random key 好像是這個,要不tomcat啓動特別慢 親測90s
在start啓動參數裏新加啓動參數(按照寫好的格式寫就行了)
# ----- Execute The Requested Command -----------------------------------------
case "$1" in
run )
shift
"$JSVC" $* \
$JSVC_OPTS \
-java-home "$JAVA_HOME" \
-pidfile "$CATALINA_PID" \
-wait "$SERVICE_START_WAIT_TIME" \
-nodetach \
-outfile "&1" \
-errfile "&2" \
-classpath "$CLASSPATH" \
"$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.io.tmpdir="$CATALINA_TMP" \
-Djava.security.egd=file:/dev/./urandom
\
$CATALINA_MAIN
exit $?
;;
start )
"$JSVC" $JSVC_OPTS \
-java-home "$JAVA_HOME" \
-user $TOMCAT_USER \
-pidfile "$CATALINA_PID" \
-wait "$SERVICE_START_WAIT_TIME" \
-outfile "$CATALINA_OUT" \
-errfile "&1" \
-classpath "$CLASSPATH" \
"$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.io.tmpdir="$CATALINA_TMP" \
-Djava.security.egd=file:/dev/./urandom
\
$CATALINA_MAIN
exit $?
;;
最好run裏也寫上
然後將此文件copy到/etc/init.d
命名爲tomcat
執行
sudo update-rc.d tomcat defaults
如果你想更改爲80端口 請使用sudo service tomcat start 系統端口必須要有root權限,你也可以採用iptables 將8080端口轉發到80端口 重啓會有問題,至於如何轉發,請google之