我遇到了 Exim4 无法启动/重新启动/重新加载的问题... 任何操作都无法通过/etc/init.d/exim4
nor进行systemctl start exim4
... 控制台上均无输出 - 启动过程无限期挂起。但是,当我通过 进行调试启动时exim -bd -d
,exim 会加载,输出中没有明显的错误。
Systemctl & init.d
scrip 没有记录启动脚本失败的原因。我也有点困惑为什么它会挂起...更奇怪的是,在启动服务失败约 20 分钟后,系统“不知何故”恢复了 Exim,状态开始报告服务为(正在运行)
状态输出显示
root@mail:/usr# systemctl status exim4
● exim4.service - LSB: exim Mail Transport Agent
Loaded: loaded (/etc/init.d/exim4; generated)
Active: inactive (dead) since Wed 2023-03-15 15:49:00 CET; 18min ago
Docs: man:systemd-sysv-generator(8)
Mar 15 15:48:35 mail systemd[1]: Starting LSB: exim Mail Transport Agent...
Mar 15 15:48:36 mail exim4[8814]: Starting MTA: exim4.
Mar 15 15:48:36 mail systemd[1]: Started LSB: exim Mail Transport Agent.
Mar 15 15:49:00 mail systemd[1]: Stopping LSB: exim Mail Transport Agent...
Mar 15 15:49:00 mail exim4[9454]: Stopping MTA: exim4_listener.
Mar 15 15:49:00 mail systemd[1]: exim4.service: Succeeded.
Mar 15 15:49:00 mail systemd[1]: Stopped LSB: exim Mail Transport Agent.
任何关于如何调试这个问题的见解都将不胜感激,因为我不想在重新启动服务时等待很长时间。
[pid 30258] recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\0013\3\0\0\22\0\0\0\266\0\0\0\1\1o\0.\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 24
[pid 30258] recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="/org/freedesktop/systemd1/unit/m"..., iov_len=995}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 995
[pid 30258] recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\4\1\1\254\3\0\0\23\0\0\0\266\0\0\0\1\1o\0.\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 24
[pid 30258] recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="/org/freedesktop/systemd1/unit/m"..., iov_len=1116}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 1116
[pid 30258] recvmsg(3, {msg_namelen=0}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily unavailable)
[pid 30258] ppoll([{fd=3, events=POLLIN}], 1, NULL, NULL, 8
答案1
好的,我实际上弄清楚了发生了什么,但我完全不确定这有什么关系......
事情是这样的,我的 mysql-community-server 完全损坏了(Exim4 不会将 MySQL 用于任何用途...),但无论如何。完全重新安装 MySQL 后,Exim4 开始正常运行 - 即启动、停止和重新加载均能正常工作,没有任何长时间的延迟。
答案2
尝试重建 Exim 使用的任何数据库。
Exim 可以使用多种方式,例如 MySQL:路由/配置、虚拟域/用户、白名单/黑名单和日志记录/统计。
https://www.exim.org/exim-html-current/doc/html/spec_html/ch-file_and_database_lookups.html
我知道在我见过的服务器上,eximstats 使用的是 MySQL。用户经常会以不同的方式填满他们的驱动器或使他们的服务器过载,而 eximstats 和 MySQL 经常会崩溃,这暗示着它们存在问题。