【发布时间】:2019-06-18 02:49:32
【问题描述】:
我有一个基于 Yocto 的操作系统,我已经安装了所有东西来启动网络。
尽管如此,每次启动时我都需要使用systemctl start networking 来启动它。最初,该服务甚至被屏蔽了。我发现了如何取消屏蔽它,但我找不到自动启动它的方法。
我对 systemd 不太了解,但networking.service 位于generator.late 文件夹中。据我了解,是后来生成的。
如何启用它?
【问题讨论】:
我有一个基于 Yocto 的操作系统,我已经安装了所有东西来启动网络。
尽管如此,每次启动时我都需要使用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
【讨论】: