![Spamassassin Systemd 错误](https://linux22.com/image/658000/Spamassassin%20Systemd%20%E9%94%99%E8%AF%AF.png)
尝试启动 spamassassin(用于我的 postfix 服务器)时出现错误。我认为此错误可能与 systemd 有关,因为它在我安装补丁之前就正常工作了(我认为)。
我按照ArsTechnica 指南设置电子邮件服务器。
我已经尝试重新安装,但没有帮助。
注意:错误发生在 spamassassin 启动时。以 postfix 用户身份执行 --lint 不会产生任何错误,并且必要的行已在 中设置v320.pre
。
以下是 spamassassin 的配置文件:
#/etc/default/spamassassin # 邓肯·芬德利 # 警告:使用前请阅读 README.spamd。 # 可能存在安全风险。 SAHOME="/var/lib/spamassassin" SAGLOBALCFGPATH="/etc/spamassassin" # 如果你使用 systemd(jessie 的默认设置),则 ENABLED 设置为 # 未使用。相反,通过发出以下命令启用 spamd: #systemctl 启用 spamassassin.service # 更改为“1”以在使用 sysvinit 的系统上启用 spamd: 已启用=1 # 选项 # 请参阅 man spamd 了解可能的选项。-d 选项会自动添加。 # SpamAssassin 使用预分叉模型,所以要小心!你需要 # 确保 --max-children 的设置不大于 5, # 除非你知道自己在做什么。 选项=“-x --max-children 5 --helper-home-dir ${SAHOME} -u spamd -g spamd --siteconfigpath ${SAGLOBALCFGPATH} --socketpath=/var/spool/postfix/spamassassin/spamd.sock --socketowner=spamd --socketgroup=spamd --socketmode=0660” # Pid 文件 # spamd 应该将其 PID 写入文件何处?如果您使用 -u 或 # --上面的用户名选项,这需要由该用户可写。 # 否则,init 脚本将无法关闭 spamd。 PIDFILE="/var/run/spamd.pid" # 设置 spamd 的良好级别 #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.
如果您还有什么需要,请告诉我,我会尽快提供。
答案1
查看这篇博文。
这与升级到 Jessie 以及如何处理变量有关。
升级到 Jessie 需要从 init 切换到 systemd,这导致变量不再扩展。指南建议将路径$SAGLOBALCFGPATH
和$SAHOME
路径放在字符串中引用的变量中,OPTIONS
这当然会失败,因为它们不再扩展。
解决方案很简单:进入等/默认/spamassassin并用其路径(手动)替换变量。这意味着,如果您使用了默认参数,则需要${SAHOME}
用/var/lib/spamassassin
和${SAGLOBALCFGPATH}$
替换。/etc/spamassassin