gpt4 book ai didi

beagleboneblack - 等待 connman 在 sytemd 系统中完成网络配置

转载 作者:行者123 更新时间:2023-12-02 03:39:05 25 4
gpt4 key购买 nike

有什么方法可以配置 systemd 服务(例如 serviceX)以等待 connmand 服务在 serviceX 运行之前完成网络接口(interface)配置?根据我对 systemd 的理解,使用或依赖 network.target 是毫无意义的,因为该功能已被严重破坏。我正在使用的系统(带有 Angstrom Linux 的 BeagleBone Black)使用 connman 而不是 NetworkManager。

最佳答案

根据 systemd 文档,所有需要在启动时等待有效在线连接的 systemd 单元需要包括以下内容:

[Unit]
...
Wants=network-online.target
After=network-online.target

如果你想兼容旧的systemd版本,你也可以使用:

[Unit]
...
Wants=network.target network-online.target
After=network.target network-online.target

这是针对 systemd 的。使用 NetworkManager(为完整起见,我知道您没有使用它),这在上游版本 0.9.10 和一些发行版(包括 Fedora)也适用于较旧的上游版本后起作用。

https://bugzilla.gnome.org/show_bug.cgi?id=728965

由于您正在使用 connman,因此您需要检查 connman 是否正确实现了 network-online.target。检查 connman 1.30 源代码显示 network-online.target 根本没有出现,所以我必须假设 connman 落后了。您可能希望在 connman 和/或您的 Linux 发行版中发起功能请求。在这种情况下,如果您在此处添加有关它的注释会很好。

基本上,对于较新的 systemd 版本、正确实现 network-online.target 的网络服务以及使用正确依赖项的服务,一切都应该为用户开箱即用。

根据对其他答案的评论,connman.service 的 Unit 部分如下所示:

[Unit]
Description=Connection service
After=syslog.target

至少应该在 Before=network.target 处。 After=syslog.target 对于当前的 systemd 版本是多余的。但最好完全实现 network-online.target

关于beagleboneblack - 等待 connman 在 sytemd 系统中完成网络配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21314701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com