我的 postfix+dovecot 邮件服务器遇到了问题。每次我尝试向不同的服务器(gmail 等)发送电子邮件时,我都会在日志中收到以下消息:
postfix/qmgr[28918]: warning: connect to transport private/smtp: Connection refused
postfix/error[29298]: BB36617ABFB: to=<email@gmail.com>, relay=none, delay=575, delays=575/0.01/0/0.01, dsn=4.3.0, status=deferred (mail transport unavailable)
Run Code Online (Sandbox Code Playgroud)
不知何故,postfix 无法连接到它的 postscreen 传输。这是我的 main.cf(替换了域):
## These are all default Postfix settings that we won't change
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
inet_protocols = ipv4, ipv6
inet_interfaces = all
mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/99-mail-stack-delivery.conf -m "${EXTENSION}"
mailbox_size_limit = 0
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_session_cache_database …Run Code Online (Sandbox Code Playgroud) 当我尝试关闭logind会话(通过注销)时,某些进程仍在会话下运行,从而阻止其正确终止,从而导致也user@uid.service未终止。我听说后者是一种预期行为(某些单元保持运行是可取的),但我认为让会话运行不是实现这一目标的正确方法。此外,当我手动终止会话时,user@uid.service也终止,所以它似乎像挥之不去的会话被用于此目的。
为了说明我在做什么,这是systemd-cgls我正常登录时(即现在)的输出的一部分:
Control group /:
-.slice
??user.slice
??user-1000.slice
??user@1000.service
? ?? //various units listed; removed for brevity
??session-c8.scope
??4883 login -- sammko
??4905 /usr/bin/gnome-keyring-daemon --daemonize --login
?? //various other processes listed; removed for brevity
Run Code Online (Sandbox Code Playgroud)
输出完全符合预期。退出会话后:
Control group /:
-.slice
??user.slice
??user-1000.slice
??user@1000.service
? ?? //various units listed; removed for brevity
??session-c8.scope
??4905 /usr/bin/gnome-keyring-daemon --daemonize --login
Run Code Online (Sandbox Code Playgroud)
gnome-keyring-daemon以某种方式幸存下来,使会话保持活跃。如果我们现在运行loginctl show-session c8,我们会State=closing在输出中找到。如果我们继续,kill -HUP 4905我们会发现进程和会话终止,并带走了整个进程user-uid.slice。如果我们继续kill …