我在 FreeBSD 9.3 系统上有一个由 exim 使用的 spamassassin 守护进程,它尝试使用 /nonexistent 作为其临时文件和贝叶斯过滤器存储。
通过 /etc/rc.conf 中的守护进程标志传递用户名或主目录不会改变这种行为。
spamd_flags="-c -u spamd -H /var/spool/spamd"
初始进程生成的子进程由用户 spamd(其主目录为)运行/var/spool/spamd
,但它仍尝试使用 /nonexistent。目录的权限正确:
drwxr-xr-x 3 spamd spamd 3 Dec 20 18:15 spamd
设置bayes_path
也/usr/local/etc/mail/spamassassin/local.cf
不会改变这种行为。
显然我不是唯一一个谁遇到了问题
答案1
事实证明,问题与 spamassassin 本身无关,而是 exim 使用它的方式。在我的 exims 配置中,ACL 部分中有以下行:
warn spam = nobody
当我用
warn spam = spamd
一切都按预期进行