我在 CentOS 7 上使用 Apache 的 httpd 和 Tomcat 时发现一个问题。两者都在同一台主机上运行,均从官方存储库安装。httpd 使用 mod_auth_mellon 执行 SAML 并代理到在 Tomcat 中运行的后端 Web 应用程序。
初始情况:
- 两项服务均已停止
第一个用例:
- systemctl 启动 httpd
- systemctl 启动 tomcat
- --> 有效
第二个用例:
- systemctl 启动 tomcat
- systemctl 启动 httpd
- --> 不起作用
错误信息:
Aug 09 14:03:08 prod2.localdomain systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit httpd.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has begun starting up.
Aug 09 14:03:09 prod2.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Aug 09 14:03:09 prod2.localdomain kill[55952]: kill: cannot find process ""
Aug 09 14:03:09 prod2.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1
Aug 09 14:03:09 prod2.localdomain systemd[1]: Failed to start The Apache HTTP Server.
-- Subject: Unit httpd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has failed.
--
-- The result is failed.
Aug 09 14:03:09 prod2.localdomain systemd[1]: Unit httpd.service entered failed state.
Aug 09 14:03:09 prod2.localdomain systemd[1]: httpd.service failed.
没有端口冲突,用以下方法检查netstat -nalp
。httpd 仅绑定到端口 80,tomcat 仅绑定到端口 8080 和 8009。
因此有两个问题:
- systemd 尝试杀死什么?
- 怎么了?
答案1
error_log 中有什么内容吗?还请检查 systemd 中的 /usr/lib/systemd/system/httpd.service/httpd.service 设置。也许存在依赖关系。