Tomcat 8 无法在 ubuntu 15.04 上启动--status=127

Tomcat 8 无法在 ubuntu 15.04 上启动--status=127

我总是收到这条我无法理解的消息:

sudo systemctl status -l tomcat8.service
● tomcat8.service - LSB: Start Tomcat.
   Loaded: loaded (/etc/init.d/tomcat8)
   Active: failed (Result: exit-code) since sáb 2015-05-09 00:48:07 CEST; 2h 31min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 1295 ExecStart=/etc/init.d/tomcat8 start (code=exited, status=127)

may 09 00:48:07 vaio systemd[1]: Starting LSB: Start Tomcat....
may 09 00:48:07 vaio tomcat8[1295]: [58B blob data]
may 09 00:48:07 vaio systemd[1]: tomcat8.service: control process exited, code=exited status=127
may 09 00:48:07 vaio systemd[1]: Failed to start LSB: Start Tomcat..
may 09 00:48:07 vaio systemd[1]: Unit tomcat8.service entered failed state.
may 09 00:48:07 vaio systemd[1]: tomcat8.service failed.

任何想法?

先感谢您!!

答案1

当我升级 Ubuntu 和 Java(8->11)时,我遇到了同样的错误。问题在于 systemd 模块中的 JAVA_HOME 路径错误。JAVA_HOME 路径末尾有“jre/”,这对于较新的 Java 版本来说是错误的。解决方案:

  1. 编辑/etc/systemd/system/tomcat.service并删除 JAVA_HOME 路径尾部的“jre/”。
  2. systemctl daemon-reload
  3. systemctl restart tomcat

答案2

/bin/sh如果在系统变量中找不到给定的命令,并且该命令不是内置的 shell 命令,则返回值 127。PATH换句话说,系统不理解您的命令,因为它不知道在哪里找到您尝试调用的二进制文件。

了解更多信息关联

答案3

Tomcat 安装过程中一定有某些东西损坏了。我无法执行 apt-get remove tomcat8 或 apt-get purge tomcat8。我删除了 conf 文件夹并保存了我的 server.xml 文件和 webapps 文件夹。然后我能够清除 tomcat,然后重新安装并用我的文件替换 server.xml 文件,然后我就可以再次运行了。

仍然不知道是什么损坏了 tomcat 安装,但我终于可以继续前进了。

谢谢大家的建议。

答案4

问题出在 /etc/init.d/tomcat8,java 文件夹检测

find_jdks()
{
  for java_version in 9 8 7
  do
      for jvmdir in /usr/lib/jvm/java-${java_version}-openjdk-* \
                    /usr/lib/jvm/jdk-${java_version}-oracle-* \
                    /usr/lib/jvm/jre-${java_version}-oracle-*
      do
          if [ -d "${jvmdir}" ]
          then
              JDK_DIRS="${JDK_DIRS} ${jvmdir}"
          fi
      done
  done

  # Add older non multi arch installations
  JDK_DIRS="${JDK_DIRS} /usr/lib/jvm/java-7-oracle"
}

因此,如果在 /usr/lib/jvm/jre-${java_version}-oracle-* 文件夹下找不到 java,则默认为 java-7-oracle(适用于 java 7,如果您使用 apt-get 安装的话);您需要将其修复为默认为 java-8-oracle。

所以,我必须改变JDK_DIRS="${JDK_DIRS} /usr/lib/jvm/java-7-oracle"才能JDK_DIRS="${JDK_DIRS} /usr/lib/jvm/java-8-oracle"让它工作

相关内容