如何覆盖/etc/systemd/system.conf?

如何覆盖/etc/systemd/system.conf?

我想修改 systemd 中的默认行为。
此默认行为已CtrlAltDelBurstAction=reboot-force在 中注释掉/etc/systemd/system.conf

我只需取消注释这一行并将其修改为CtrlAltDelBurstAction=none.
但是有没有一种“干净的方法”可以做到这一点,而不干扰原始发行版文件?

我进行了测试,systemctl edit system但这引发了一个错误,指出system.service未找到。

答案1

在现代版本中系统,可以使用 ./etc/systemd/system.conf下文件中的“专用”配置片段覆盖“默认”配置文件的设置/etc/systemd/system.conf.d/

您可以将配置行放入文件中/etc/systemd/system.conf.d/10-suppress-ctraltdel.conf,然后在重新加载时会读取它系统配置(或下次启动时)。引用自这一man systemd-system.conf

主配置文件在任何配置目录之前读取,并且具有最低优先级;任何配置目录中的文件中的条目都会覆盖单个配置文件中的条目。配置子目录中的文件*.conf.d/按文件名按字典顺序排序,无论它们位于哪个子目录中。

顺便说一句,这种配置覆盖机制现在是许多 Linux 服务的标准,因此这里讨论的方法也应该适用于其他情况。

在 中/etc/systemd/system.conf.d/10-suppress-ctraltdel.confCtrlAltDelBurstAction=none必须位于[Manager]部分(如联机帮助页中所述:“所有选项均在该[Manager]部分中配置”):

[Manager]
CtrlAltDelBurstAction=none

如果未指定某个部分,则该选项可能会被忽略,因为它可能位于错误的部分中。

答案2

这是一个配置文件,您可以修改它。当您升级systemd软件包时,大多数发行版都会询问您是否需要您的版本或系统维护者的版本。

如果你想修改一个服务文件中,那就是另一回事了:它们通常驻留在 中/lib/systemd,但您可以通过将您的版本放在/etc/systemd.

相关内容