由于缺少 tmpfiles.d 条目,Spamassassin 在重启后失败

由于缺少 tmpfiles.d 条目,Spamassassin 在重启后失败

/run/spamassassin由于没有/usr/lib/tmpfiles.d/spamassassin文件指示它这样做,因此目录在启动时不会被重新创建。如果我手动创建并/run/spamassassin启动服务,一切都会正常运行,但重新启动后,问题依然存在。spamassassin.service已启用,因此我不确定我该怎么做。我使用的是 3.4.2-6.el8 版本。

根据网上的搜索,它似乎应该包含在软件包中,但我似乎在任何地方都找不到文件内容。当我运行时,dnf repoquery -l spamassassin它没有被列为文件之一,所以我不确定它是否是在事后生成的。

我是否应该手动创建此文件;该文件是否应该在安装后生成;或者是否应该将其作为包的一部分进行安装?

感谢任何帮助!

答案1

unix:/run/spamassassin/spamd.sock关于如何使用 unix 套接字 ( ) 而不是 TCP 服务正确设置 Spamassassin 的文档确实很少。这里和那里很少提到一些单独的 Ubuntu 设置,对于 Cent 或 Fedora 的设置就更少了,但我没有找到任何解决/run/spamassassin目录问题及其短暂性的内容。

事实上,包中没有tmpfiles.d文件/条目,老实说,在我手动尝试此方法后,它对我来说从未起作用。不过,我在一个很长的不相关的线程中找到了一条线索,它指出了标准systemd服务单元中缺少的几个解决此问题的设置。

感觉因为绝大多数人只是在利用 TCP 堆栈的单独机器上运行 spamassassin,所以没有必要为基于套接字的安装做准备,而是手动完成……无需文档。

/etc/systemd/system/spamassassin.service.d/override.conf应将以下内容添加到该部分内的覆盖文件中[Service]

  1. 添加以下几行将使服务创建运行每次启动服务时,如果目录不存在...
RuntimeDirectory=spamassassin
RuntimeDirectoryMode=0770
  1. 这些行将允许使用用户运行/创建上述内容root,然后下拉到spamd用户和组来运行服务。如果没有这些,上述操作将失败,并显示没有权限错误。
PermissionsStartOnly=True
User=spamd
Group=spamd

希望这可以帮助那些在使用套接字设置时遇到困难,而不想最终放弃并走捷径的人。

相关内容