我有两个服务,A和B,由两个不同的软件包安装。
服务B取决于服务A.
默认情况下,两者都被禁用并停止。
为了让服务B在每次启动时运行,我启用它,然后启动它:
systemctl enable B
systemctl start B
由于B依赖于A,我希望A能够启动,它确实开始了!然而,A未启用。这是预期的行为吗?不知怎的,这对我来说有点奇怪。
答案 0 :(得分:5)
是的,这是预期的行为。
systemctl enable
和systemctl disable
操作配置自动启动。
更确切地说,这些操作只是执行单元文件的[Install]
部分中描述的内容(或这些操作的反转)。大多数情况下,这包括从multi-user.target
或类似的系统范围目标向单位添加人工依赖,仅此而已。
因此,手动或通过其他依赖项启动单元完全不受此影响。如果您确实希望手动或通过依赖项阻止启动单元文件,请运行systemctl mask UNIT
。