期望systemd启动禁用的服务吗?

Ale*_*lke 3 service dependencies systemd

我有两个不同的软件包安装了两个服务A和B。

服务B取决于服务A。

两者均默认禁用和停止。

为了使服务B在每次引导时运行,请启用它,然后启动它:

systemctl enable B
systemctl start B
Run Code Online (Sandbox Code Playgroud)

由于B取决于A,所以我希望A可以启动,并且确实可以启动!尚未启用A。这是预期的行为吗?某种程度上,这看起来对我来说很奇怪。

int*_*lfx 7

是的,这是预期的行为。

systemctl enablesystemctl disable操作配置自动启动一个单位的。

更准确地说,这些操作仅执行[Install]单位文件部分中描述的内容(或这些操作的逆过程)。在大多数情况下,这包括向来自multi-user.target或类似系统范围目标的单位添加人为依赖,仅此而已。

因此,手动或通过其他依赖项启动设备完全不受此影响。如果确实要阻止手动或通过依赖项启动单元文件,请运行systemctl mask UNIT