错误 “Failed to start tomcat.service: Unit is not loaded properly: Bad message” 通常意味着的 tomcat.service
systemd 配置文件存在语法错误或配置不正确。为了解决这个问题,一步步检查和修正这个服务文件。
1. 检查 tomcat.service
文件
首先,打开并检查 /etc/systemd/system/tomcat.service
文件的内容,确保它的格式和参数正确无误。下面是一个标准的 Tomcat systemd 服务文件的示例,您可以根据需要进行调整:
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
**特别注意这里环境配置是不是和环境中Java环境配置不一样**
Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
确保:
- 所有路径都正确指向了相应的文件,特别是
ExecStart
和ExecStop
脚本的路径。 JAVA_HOME
环境变量正确指向您安装的 Java 路径。- 确保没有不可见的特殊字符或格式错误。
2. 重新加载并尝试启动服务
修改完毕后,保存文件并运行以下命令来重新加载 systemd 配置并尝试启动服务:
sudo systemctl daemon-reload
sudo systemctl start tomcat
sudo systemctl enable tomcat
3. 检查服务状态
如果服务启动时仍然遇到问题,使用下面的命令查看更多的错误信息:
sudo systemctl status tomcat.service
这个命令会显示服务的状态和日志的头几行,可能包含导致错误的具体原因。
4. 查看日志
如果 systemctl status
的输出不足以帮助您诊断问题,您可以查看更详细的系统日志:
journalctl -xe
这个命令会显示详细的错误信息,有助于确定启动失败的原因。
5. 调整和测试
根据日志中的提示,调整您的 tomcat.service
文件中的配置。可能需要几次尝试来确认配置完全正确。