如何在Yocto中启动网络服务

如何在Yocto中启动网络服务,yocto,systemd,Yocto,Systemd,我有一个基于Yocto的操作系统,我在上面安装了启动网络所需的一切 然而,每次启动时,我都需要执行systemctl start networking来启动它。起初,这项服务甚至被屏蔽。我找到了如何解开它,但我找不到一种方法来自动启动它 我对systemd了解不多,但networking.service位于generator.late文件夹中。据我所知,这是后来产生的 如何启用该服务?这取决于您是否只想在一个特定设备上启用该服务。如果是,很简单: systemctl enable network

我有一个基于Yocto的操作系统,我在上面安装了启动网络所需的一切

然而,每次启动时,我都需要执行
systemctl start networking
来启动它。起初,这项服务甚至被屏蔽。我找到了如何解开它,但我找不到一种方法来自动启动它

我对systemd了解不多,但networking.service位于
generator.late
文件夹中。据我所知,这是后来产生的


如何启用该服务?

这取决于您是否只想在一个特定设备上启用该服务。如果是,很简单:

systemctl enable networking
如果您还想立即启动服务,请附加参数
--now

如果您希望在所有设备上启用该服务(即,它将在所有来自构建的映像中自动启用),最好的方法是扩展该配方,但请参阅下文了解处理网络的其他方法。例如,在中描述了该过程

关于
networking.service
本身的一些注意事项:我假设您的
networking.service
来自
init ifupdown
recipe。如果是,是否有任何理由在带有systemd的系统中使用旧的SysV init脚本处理网络配置?该服务由SysV init脚本生成。因此,我建议尝试其他网络服务,如systemd的原生“systemd networkd”、“NetworkManager”或“connman”。最佳选择取决于嵌入式系统的类型。这些服务与systemd集成得更好


有关激活或启用服务的更多信息:

感谢Thomas的详细解释。你是对的,我用的是init-ifupdown。我想让系统尽可能小。我选择了connman,它直接按照我的意愿启动了我的界面。