Debian-Wheezy

通過 init.d 啟動 tomcat 可以,但不能通過服務

  • January 5, 2014

來自儲存庫和 Debian Wheezy 的 Tomcat 7。

如果我嘗試通過服務啟動 Tomcat,它不起作用

service tomcat7 start
[FAIL] no JDK found - please set JAVA_HOME ... failed!

但變數在那裡

/var/lib/tomcat7/conf# echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle

如果我從 init.d 嘗試它確實有效

/etc/init.d/tomcat7 start
[ ok ] Starting Tomcat servlet engine: tomcat7.

查看 /etc/inittab

# The default runlevel.
id:2:initdefault:

預設似乎是 2

因此,查看 /etc/rc2.d

lrwxrwxrwx 1 root root  17 Nov 18 22:50 S01tomcat7 -> ../init.d/tomcat7

似乎它總是指同一個 /etc/init.d/tomcat7 我不明白為什麼它會失敗(抱怨 java)..

當您直接執行初始化腳本時,將使用您的 shell 環境。當您執行服務命令時,它不是。您應該在*/etc/default/tomcat7*中設置 JAVA_HOME 。

您需要使用 Java 安裝目錄路徑的值創建一個名為 JAVA_HOME 的環境變數。

如果您要進行部署,請使用 jre 路徑,如果您需要訪問開發工具,請使用 jdk 路徑。

引用自:https://serverfault.com/questions/565174