Spamassassin 系统错误

SEJ*_*JPM 4 postfix spamassassin systemd

尝试启动 spamassassin(对于我的 postfix 服务器)时出现错误。我认为这个错误可能与 systemd 有关,因为它在我安装补丁之前就起作用了(我认为)。
我按照ArsTechnica 指南设置电子邮件服务器。

我已经尝试重新安装,但没有帮助。
注意:spamassassin 启动时会出现此错误。作为后缀用户的 --lint 不会产生任何错误,并且在v320.pre.

以下是 spamassassin 的配置文件:

# /etc/default/spamassassin
#邓肯芬德利

# 警告:请在使用前阅读 README.spamd。
# 可能存在安全隐患。

SAHOME="/var/lib/spamassassin"
SAGLOBALCFGPATH="/etc/spamassassin"

# 如果您使用 systemd(jessie 的默认设置),则 ENABLED 设置为
# 未使用。相反,通过发出以下命令启用垃圾邮件:
# systemctl 启用 spamassassin.service
# 更改为“1”以在使用 sysvinit 的系统上启用 spamd:
启用=1

# 选项
# 有关可能的选项,请参阅 man spamd。-d 选项是自动添加的。

# SpamAssassin 使用预分叉模型,所以要小心!你需要
# 确保 --max-children 没有设置为高于 5 的任何值,
#除非你知道自己在做什么。

OPTIONS="-x --max-children 5 --helper-home-dir ${SAHOME} -u spamd -g spamd --siteconfigpath ${SAGLOBALCFGPATH} --socketpath=/var/spool/postfix/spamassassin/spamd。袜子 --socketowner=spamd --socketgroup=spamd --socketmode=0660"

#pid文件
# spamd 应该在哪里将其 PID 写入文件?如果您使用 -u 或
# --username 上面的选项,这需要该用户可写。
# 否则,init 脚本将无法关闭 spamd。
PIDFILE="/var/run/spamd.pid"

# 设置垃圾邮件的好级别
#NICE="--nicelevel 15"

# 定时任务
# 设置为除 0 以外的任何值以启用 cron 作业自动更新
# spamassassin 每晚的规则
CRON=1

这是描述错误的日志文件。


May 11 20:41:28 raspberrysyncserver spamd[21486]: logger: removing stderr method
May 11 20:41:36 raspberrysyncserver spamd[21488]: Timeout::_run: check: no loaded plugin implements 'check_main': cannot scan!
May 11 20:41:36 raspberrysyncserver spamd[21488]: Check the necessary '.pre' files are in the config directory.
May 11 20:41:36 raspberrysyncserver spamd[21486]: child process [21488] exited or timed out without signaling production of a PID file: exit 255 at /usr/sbin/spamd line 2960.
Run Code Online (Sandbox Code Playgroud)

如果您还需要什么,请告诉我,我会尽快提供。

小智 14

看看这篇博文

这与升级到 Jessie 以及如何处理变量有关。

升级到 Jessie,涉及从 init 到 systemd 的切换,导致变量不再扩展。正如指南建议将路径$SAGLOBALCFGPATH$SAHOME路径放在OPTIONS字符串中引用的变量中,这当然会失败,因为它们不会再被扩展。

解决方案相当简单:进入etc/default/spamassassin并(手动)用它们的路径替换变量。这意味着如果您使用了默认参数,则替换${SAHOME}/var/lib/spamassassin和。${SAGLOBALCFGPATH}$/etc/spamassassin