我在安装 Postfix 时遇到了这个问题:
https://www.virtualmin.com/node/23909
即我收到了错误:
postfix/smtp[130]: fatal: unknown service: smtp/tcp
和上面的网址一样,解决方案是手动复制/etc/services
并/etc/resolv.conf
放入/var/spool/postfix/etc
我的印象是这“刚刚开始发生”并且以前不是什么问题,但是我只是对 postfix main.cf 做了一些看似不相关的微小更改,所以我不明白为什么。
我所遵循的 Postfix 安装教程没有提到必须手动复制这些文件...这感觉像是 Postfix 应该自己做的事情,但由于某种原因却并非如此。
是否存在一些潜在的配置错误会导致这种情况?
答案1
一些 Postfix 进程默认在 chroot 环境中运行。因此,启动时通常会有一些文件为它们提供必要的文件。
在我的 Debian 7 系统上,该文件/etc/init.d/postfix
包含以下几行,用于复制 chroot 内的所有必要文件:
FILES="etc/localtime etc/services etc/resolv.conf etc/hosts \
etc/nsswitch.conf etc/nss_mdns.config"
for file in $FILES; do
[ -d ${file%/*} ] || mkdir -p ${file%/*}
if [ -f /${file} ]; then rm -f ${file} && cp /${file} ${file}; fi
if [ -f ${file} ]; then chmod a+rX ${file}; fi
done
奇怪的是您的安装没有包括这个;您不必在这里自己做任何事情。
您是如何安装 postfix 的以及在哪个系统上安装?
答案2
看起来 Postfix 想要运行 chrooted。请参阅这里了解有关其含义的更多信息。
Chroot
您可以使用中的配置选项来更改它/etc/postfix/master.cf
。
答案3
这可能是 NetworkManager 的时间问题。通过更改 /etc/rc{x}.d 中 postfix 文件的名称,使 postfix 在启动过程中稍后加载
例如:
sudo mv /etc/rc5.d/S20postfix /etc/rc5.d/S92postfix
您可能需要在所有 /etc/rc{x}.d 目录中更改此设置。记得重新启动以进行测试。
答案4
我发现对我来说解决这个问题最简单的方法是将 postfix 重新启动添加到 /etc/rc.local