Ubuntu GNOME 17.04
看来我遇到了 Postfix 问题。我认为这与它从 SSD 启动有关,并且一些必需的服务尚未完全启动,导致 Postfix 在启动时失败。但是,如果我重新启动 Postfix,所需的服务现在就在那里,一切正常。
这是踪迹...
这是错误的示例...
~$ mail -s testing root
Cc:
testing
~$ mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
5703312A0BE4 392 Mon Jun 26 14:10:18 [email protected]
(Host or domain name not found. Name service error for name=smtp.gmail.com type=MX: Host not found, try again)
看起来像是 DNS 错误,是吧?
所以如果我看这个......
~$ cd /var/spool/postfix/etc
~$ ls -al
total 52
drwxr-xr-x 3 root root 4096 Jun 26 14:08 .
drwxr-xr-x 20 root root 4096 Apr 14 13:29 ..
-rw-r--r-- 1 root root 92 Jun 26 14:08 host.conf
-rw-r--r-- 1 root root 1955 Jun 26 14:08 hosts
-rw-r--r-- 1 root root 2845 Jun 26 14:08 localtime
-rw-r--r-- 1 root root 544 Jun 26 14:08 nsswitch.conf
-rw-r--r-- 1 root root 282 Jun 26 14:08 resolv.conf
-rw-r--r-- 1 root root 19183 Jun 26 14:08 services
drwxr-xr-x 3 root root 4096 May 12 2014 ssl
~$ more resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
~$
resolv.conf 没有正确填充!
如果我重新启动 Postfix,那么 resolv.conf 就会被正确填充,并且 Postfix 可以正常工作!
我的想法是,当 Postfix 想要复制一些文件(特别是 resolv.conf 信息)时,systemd-resolved 可能还没有完成启动/var/spool/postfix/etc
,这就是导致 Postfix 失败的原因。
如果我那时……
~$ cd /etc/systemd/system/postfix.service.d
~$ more override.conf
[Unit]
After=network-online.target
After=systemd-resolved.service
~$
我怀疑这就是必须修复的地方?添加/删除“After=”定义?
关于如何让我的 Postfix 在启动时正确启动,有什么想法吗?
答案1
使用以下命令从终端编辑 /etc/resolvconf/resolv.conf.d/base:
sudo gedit /etc/resolvconf/resolv.conf.d/base
在此插入:
nameserver 8.8.8.8
nameserver 8.8.4.4
节省。
重启。您已完成。
答案2
看来我正走在解决 Postfix 问题的正确道路上。
我最终改变了这一点:
~$ cd /etc/systemd/system/postfix.service.d
~$ more override.conf
[Unit]
After=network-online.target
After=systemd-resolved.service
对此:
~$ cd /etc/systemd/system/postfix.service.d
~$ more override.conf
[Unit]
#After=network-online.target
#After=systemd-resolved.service