systemd/system 覆盖应如何工作?

systemd/system 覆盖应如何工作?

我正在调整一些超时设置,并试图找出为 systemd/system 守护进程设置事物的正确方法。具体来说,这是一台动力不足的服务器,我在启动 clamd 时总是超时,所以我试图弄清楚我需要将 TimeoutStartSec 参数设置得多高。我试过了

systemctl edit --full [email protected]

并对其进行了编辑,内容如下

TimeoutStartSec=20min

然后systemctl daemon-reload

但它总是在 7 分钟后神秘地超时。最后,我发现有。/usr/lib/systemd/system/[email protected]TimeoutStartSec=420

可能违反了所有正确的做法,我编辑了/usr/lib文件的版本,并注释掉了那一行。果然,这改变了一切,但它似乎仍然没有读取版本/etc/systemd。一旦我将其注释掉,它就会在 90 秒后开始超时,我猜这一定是默认的。

作为一个临时的解决办法,我已将版本编辑/usr/lib为我想要的 20 分钟,但是......这似乎不是正确的做事方式。

应该systemctl edit在 中编辑版本吗/etc/systemd/system?这是公认的正确做法吗?我是否需要做更多的事情systemctl daemon-reload

欢迎任何有关如何正确实现这一目标的建议。

短暂性脑缺血发作

答案1

systemctl daemon-reload告诉 systemd 本身重新加载已更改的单元配置。不是由单元启动的软件,在本例中是 clamd。(尽管手册中已警告过此区别,但您并不是第一个对此感到困惑的人。)

相反,使用其中一个单位命令,例如systemctl reload-or-restart [email protected]

systemctl edit 是否应该编辑 /etc/systemd/system 中的版本?

是的。其理念是 /etc 包含特定于站点的配置,它将覆盖安装到 /usr 的系统包的内容。

我会省略--full并创建仅包含不同选项的“插入式”文件。避免维护单元的整个副本。例如,编辑一个临时文件,该文件将存放在类似的地方 ,并且可能仅包含不同的。systemctl edit [email protected]/etc/systemd/system/[email protected]/override.confTimeoutStartSec=

相关内容