我有一个关于鸽舍的奇怪问题。直到昨天,当我从 debian/jessie 升级到 debian/stretch (armhf) 时,我的 dovecot 在我的 cubietruck 上完美运行。
/var
符号链接到另一个已安装的驱动器(mountpoint /extended
):/var
->/extended/hostname/var
现在,每当我将它作为服务(“ systemctl start dovecot
”)启动时,它都不会启动,而是立即退出并出现错误。
May 08 21:16:20 hostname systemd[1]: Starting Dovecot IMAP/POP3 email server...
May 08 21:16:20 hostname dovecot[32167]: Error: bind(/var/spool/postfix/private/auth_dovecot) failed: No such file or directory
May 08 21:16:20 hostname dovecot[32167]: Fatal: Failed to start listeners
May 08 21:16:20 hostname systemd[1]: dovecot.service: Control process exited, code=exited status=89
May 08 21:16:20 hostname systemd[1]: Failed to start Dovecot IMAP/POP3 email server.
May 08 21:16:20 hostname systemd[1]: dovecot.service: Unit entered failed state.
May 08 21:16:20 hostname systemd[1]: dovecot.service: Failed with result 'exit-code'.
每当我root
在 shell 中启动 dovecot 时,dovecot
它不会显示任何错误,但可以完美运行。
我的dovecot.conf
:
auth_mechanisms = plain login
log_timestamp = "%Y-%m-%d %H:%M:%S "
passdb {
args = /etc/dovecot/dovecot-mysql.conf
driver = sql
}
protocols = imap pop3
service auth {
unix_listener /var/spool/postfix/private/auth_dovecot {
mode = 0660
user = postfix
group = postfix
}
unix_listener auth-master {
mode = 0600
user = vmail
}
user = root
}
ssl_cert =</etc/postfix/sslcert/server.crt
ssl_key =</etc/postfix/sslcert/server.key
userdb {
args = /etc/dovecot/dovecot-mysql.conf
driver = sql
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
# Enable installed protocols
!include_try /usr/share/dovecot/protocols.d/*.protocol
# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!include conf.d/*.conf
# A config file can also tried to be included without giving an error if
# ried not found:
!include_try local.conf
- 我在启动之前已经删除了套接字
/var/spool/postfix/private/auth_dovecot
,但是作为服务启动时没有用。在 shell 中启动时,套接字 (auth_dovecot
) 在启动时重新创建。 - 注释掉
unix_listener
-part 可能会导致启动超时。错误读取PID file /var/run/dovecot/master.pid not readable (yet?) after start
。 - 对套接字 (
/var/spool/postfix/private/auth
) 使用另一个名称会导致相同的错误。 - 我已经尝试完全重新安装 dovecot(apt purge、autoremove、autoclean、clean、install ......),但这会导致超时问题和奇怪的配置文件。
- 在 google/stackexchange 上搜索并没有找到解决方案。
因为我可以从 shell 以 root 身份运行 dovecot 而不会出现问题,所以我强烈怀疑systemd
会生成某种chroot
但我需要一些提示来进一步调查它。
先感谢您。
PS:幸运的是我应该可以回去,debian/jessie
因为我有一个SD 卡的tar.gz
存档。cubietruck
似乎有一些奇怪的行为
systemd
。我通过编辑
postfix.service
文件 (/etc/systemd/system/multi-user.target.wants/dovecot.service
) 解决了这个问题,并将默认条目设置PrivateTmp=true
为PrivateTmp=false
.我不清楚为什么一个名为的配置参数
PrivateTmp
不仅在记录的文件夹上工作,/tmp
或者/var/tmp
还阻止访问/var/spool
(或/var/spool/postfix/private/auth_dovecot
)内容的原因。