我想知道是否有办法在 systemd 服务之间创建软依赖关系。基本上,我想创建一个“伞”服务来启动标记为(软)依赖关系的其他服务,但是当且仅当它们被启用时-- 雨伞应该绝不启动已禁用的依赖服务。
更具体地说,我收到了拉取请求为了cfengine-systemd旨在创建这样一个伞状单元。遗憾的是,提议的cfengine3.service
单元不遵守依赖单元的启用/禁用状态,并且无论如何都会启动它们。
我以前也曾尝试过用目标单元做同样的事情,但是可耻地失败了。
有什么线索吗?
提前致谢
更新以下是迈克尔的问题:我想说,如果cfengine3.service
被禁用,systemd 不应该尝试启动依赖的服务。
答案1
启用/禁用状态控制服务是否在启动时启动/不启动。在这种情况下,我建议依赖服务应保持禁用状态,并且只应更改伞服务的状态。要使伞服务仅启动部分依赖项,应将它们软链接到伞服务的 .requires 目录中(例如,链接到 /etc/systemd/system/umbrella-unit.service/requires 目录中)。