如何在 Yocto 启动时启用网络服务
How to enable networking service at boot in Yocto
我有一个基于 Yocto 的 OS,我在上面安装了启动网络所需的一切。
然而,每次启动时我都需要执行 systemctl start networking
来启动它。最初,该服务甚至被屏蔽了。我找到了如何取消屏蔽它,但找不到自动启动它的方法。
我不太了解 systemd,但 networking.service 位于 generator.late
文件夹中。据我了解,是后来生成的
如何启用它?
这取决于您是否只想在一台特定设备上启用该服务。如果是,那很简单:
systemctl enable networking
如果您也想立即启动服务,请附加参数--now
。
如果你想在你的所有设备上启用该服务(即它会在你所有来自构建的图像中自动启用),最好的方法是扩展配方,但请参阅下面的其他方法如何处理网络。例如,该过程在 NXP support 中进行了描述。
关于 networking.service
本身的一些注意事项:我假设您的 networking.service
来自 init-ifupdown
食谱。如果是,是否有任何理由在带有 systemd 的系统中使用旧的 SysV 初始化脚本来处理网络配置?该服务由 systemd-sysv-generator 从 SysV 初始化脚本生成。所以我建议尝试其他网络服务,例如 systemd 的原生 "systemd-networkd"、"NetworkManager" 或 "connman"。最佳选择取决于嵌入式 systemd 的类型。这些服务与 systemd 集成得更好。
有关激活或启用服务的更多信息:https://unix.stackexchange.com/questions/302261/systemd-unit-activate-vs-enable
我有一个基于 Yocto 的 OS,我在上面安装了启动网络所需的一切。
然而,每次启动时我都需要执行 systemctl start networking
来启动它。最初,该服务甚至被屏蔽了。我找到了如何取消屏蔽它,但找不到自动启动它的方法。
我不太了解 systemd,但 networking.service 位于 generator.late
文件夹中。据我了解,是后来生成的
如何启用它?
这取决于您是否只想在一台特定设备上启用该服务。如果是,那很简单:
systemctl enable networking
如果您也想立即启动服务,请附加参数--now
。
如果你想在你的所有设备上启用该服务(即它会在你所有来自构建的图像中自动启用),最好的方法是扩展配方,但请参阅下面的其他方法如何处理网络。例如,该过程在 NXP support 中进行了描述。
关于 networking.service
本身的一些注意事项:我假设您的 networking.service
来自 init-ifupdown
食谱。如果是,是否有任何理由在带有 systemd 的系统中使用旧的 SysV 初始化脚本来处理网络配置?该服务由 systemd-sysv-generator 从 SysV 初始化脚本生成。所以我建议尝试其他网络服务,例如 systemd 的原生 "systemd-networkd"、"NetworkManager" 或 "connman"。最佳选择取决于嵌入式 systemd 的类型。这些服务与 systemd 集成得更好。
有关激活或启用服务的更多信息:https://unix.stackexchange.com/questions/302261/systemd-unit-activate-vs-enable