在 Yocto 构建中禁用标准 systemd 服务

ily*_*725 2 systemd yocto

我需要启动我自己的systemd服务,我们称之为custom.service。我知道如何编写一个配方,以便在启动时添加和启用它:

SYSTEMD_SERVICE_${PN} = "custom.service"
SYSTEMD_AUTO_ENABLE_${PN} = "enable"
Run Code Online (Sandbox Code Playgroud)

但是,它与默认systemd服务之一冲突- systemd-timesyncd.service.

systemd即使systemd_XX.bb实际启用它,是否有一种很好的首选方法来禁用我的 bitbake 文件中的默认服务?

我可以创建一个systemd_%.bbappend文件来修改systemd设置,但我找不到可以禁用一项服务而启用所有其他服务的位置。


我发现的工作解决方案是timesyncd使用

PACKAGECONFIG_remove = "timesyncd"
Run Code Online (Sandbox Code Playgroud)

但我想知道这是否是一种合适的方式,是否有一种方法可以禁用它,但留在系统中。

小智 8

为您想要禁用的冲突服务添加 .bbappend 配方如何。在其中,您将添加: SYSTEMD_AUTO_ENABLE_${PN} = "disable"


Mar*_*erg 5

如果系统在删除其他软件包的情况下运行良好,那么删除该软件包首选解决方案。更少的软件包意味着更简单的系统。