我正在尝试扩展供应商提供的目标/计时器来指定应该执行哪些目标,但无论我尝试哪种方式,它都不会覆盖设置。
我的第一个方法是为目标创建一个插件并进行如下更改Wants
:
[Unit]
Wants=
Wants=xyz.service
我的第二种方法是为计时器创建一个插件,并创建仅包含所需服务的目标副本。插件如下所示:
[Timer]
Unit=copiedAndEdited.target
这些方法都不起作用,尽管插件确实起作用了。我还更改了相同插件中的描述,并且该更改已应用,但其他更改未应用。是否可以更改这些值(Wants
和Unit
)或者我做错了什么,如果不可能,是否有不更改供应商单元文件的解决方法?
准确地说,我进行更改后发生了什么。使用第一种方法,所有目标仍然启动。使用第二种方法,新创建的目标仅启动指定的服务,但计时器仍然启动原始目标,而不是来自插件的目标。
我知道用放置在中的副本覆盖单位/etc/systemd/system/
,但我更喜欢插件,以防供应商在版本升级时进行更改。
答案1
无法使用插件重置[Unit]
部分(例如Wants=
或)内的依赖项列表。您只能附加。使用整个单元覆盖来进行其他更改。Requires=
但是,使用插件更改[Timer]
参数应该不会出现问题。确保调用systemctl daemon-reload
,然后新单元应该显示在计时器状态文本中的“触发器:”中。