通过 init.d 启动 tomcat 可以,但通过服务启动则不行

通过 init.d 启动 tomcat 可以,但通过服务启动则不行

来自存储库和 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)..

答案1

直接运行 init 脚本时,将使用 shell 的环境。运行服务命令时则不会。您应该在/etc/默认/tomcat7

答案2

您需要创建一个名为 JAVA_HOME 的环境变量,其值为 Java 安装的目录路径。

如果您正在进行部署,请使用 jre 路径,如果您需要访问开发工具,请使用 jdk 路径。

相关内容