我想修改 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.conf
, CtrlAltDelBurstAction=none
必须位于[Manager]
部分(如联机帮助页中所述:“所有选项均在该[Manager]
部分中配置”):
[Manager]
CtrlAltDelBurstAction=none
如果未指定某个部分,则该选项可能会被忽略,因为它可能位于错误的部分中。
答案2
这是一个配置文件,您可以修改它。当您升级systemd
软件包时,大多数发行版都会询问您是否需要您的版本或系统维护者的版本。
如果你想修改一个服务文件中,那就是另一回事了:它们通常驻留在 中/lib/systemd
,但您可以通过将您的版本放在/etc/systemd
.