/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]
。
- 添加以下几行将使服务创建运行每次启动服务时,如果目录不存在...
RuntimeDirectory=spamassassin
RuntimeDirectoryMode=0770
- 这些行将允许使用用户运行/创建上述内容
root
,然后下拉到spamd
用户和组来运行服务。如果没有这些,上述操作将失败,并显示没有权限错误。
PermissionsStartOnly=True
User=spamd
Group=spamd
希望这可以帮助那些在使用套接字设置时遇到困难,而不想最终放弃并走捷径的人。