我总是收到这条我无法理解的消息:
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 版本来说是错误的。解决方案:
- 编辑
/etc/systemd/system/tomcat.service
并删除 JAVA_HOME 路径尾部的“jre/”。 systemctl daemon-reload
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"
让它工作