systemd 插件不会覆盖特定值

systemd 插件不会覆盖特定值

我正在尝试扩展供应商提供的目标/计时器来指定应该执行哪些目标,但无论我尝试哪种方式,它都不会覆盖设置。

我的第一个方法是为目标创建一个插件并进行如下更改Wants

[Unit]
Wants=
Wants=xyz.service

我的第二种方法是为计时器创建一个插件,并创建仅包含所需服务的目标副本。插件如下所示:

[Timer]
Unit=copiedAndEdited.target

这些方法都不起作用,尽管插件确实起作用了。我还更改了相同插件中的描述,并且该更改已应用,但其他更改未应用。是否可以更改这些值(WantsUnit)或者我做错了什么,如果不可能,是否有不更改供应商单元文件的解决方法?

准确地说,我进行更改后发生了什么。使用第一种方法,所有目标仍然启动。使用第二种方法,新创建的目标仅启动指定的服务,但计时器仍然启动原始目标,而不是来自插件的目标。

我知道用放置在中的副本覆盖单位/etc/systemd/system/,但我更喜欢插件,以防供应商在版本升级时进行更改。

答案1

无法使用插件重置[Unit]部分(例如Wants=或)内的依赖项列表。您只能附加。使用整个单元覆盖来进行其他更改。Requires=

但是,使用插件更改[Timer]参数应该不会出现问题。确保调用systemctl daemon-reload,然后新单元应该显示在计时器状态文本中的“触发器:”中。

相关内容