問題並不像標題中那樣容易。setenv.sh導致Tomcat7「失敗」開始
我在Unbutu 14.04 LTS上使用默認的Tomcat 7包。當我有沒有「setenv.sh」在/ usr /共享/ tomcat7/bin中,它開始說「OK」,當我做:
$ sudo service tomcat7 start
* Starting Tomcat servlet engine tomcat7 [OK]
當我使用下面介紹的setenv.sh,它也會啓動在/var/lib/logs/catalina.out中沒有錯誤,但當/etc/init.d/tomcat7調用「start-stop-daemon --test」並結束它沒有運行時,該服務被檢測爲「失敗」:
$ sudo service tomcat7 start
* Starting Tomcat servlet engine tomcat7 [fail]
我該怎麼辦?
/usr/share/tomcat7/bin/setenv.sh:
#! /bin/sh
export JAVA_HOME="/home/linc/install/jdk1.7.0_75"
(...)
# Check for application specific parameters at startup
if [ -r "$CATALINA_BASE/bin/appenv.sh" ]; then
. "$CATALINA_BASE/bin/appenv.sh"
fi
有一個其他的問題,也許相關:當我檢查過程在啓動後運行檢測爲「失敗」(ps -ef | grep java
),我可以看到所有-D選項通過setenv.sh添加,但我看不到通過「appenv.sh」添加的-D選項(儘管setenv.sh和appenv .sh擁有完全相同的權利)。
注意:如果我啓動sudo /usr/share/tomcat7/bin/startup.sh
,該setenv.sh不會引起任何問題,並且使用appenv.sh。
編輯:我可能找到了原因,但沒有解釋:當我刪除JAVA_HOME的聲明,它使用默認的jvm和服務啓動被檢測爲「OK」,但是當我指定默認的家jvm,它再次失敗!
export JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre"
或:
export JAVA_HOME="/usr/lib/jvm/java-8-oracle"
這到底是怎麼回事?