如何在我的用户空间程序中等待,直到connman
在 Linux 启动时完成网络配置?(不幸的是,这不是Wants=connman.service
。)
systemd 服务connman
启动后,我的用户空间程序通过systemd
服务(Wants=network.target connman.service
)启动,它想通过 C 函数getifaddrs()
(例如ifa->ifa_addr
和ifa->ifa_addr->sa_family
)读取网络配置。现在可能发生两件事,要么从其配置文件中connman
读取明确未配置的网络(IPv4=0.0.0.0/0.0.0.0/0.0.0.0
)或某个网络配置(例如)。IPv4=192.168.0.50/255.255.255.0/0.0.0.0
由于某些原因,我的程序必须在某个代码行上等待,直到connman
用两种情况之一完成设置。我怎么做?
我在systemd
同步可能性中发现的只是connman
服务启动的时间点(Wants=connman.service
),这并不意味着它已经处理了它的配置文件,它在此之前!!!),其次,network-online.target
当一个 IP 地址被配置时(它确实不包括0.0.0.0/0.0.0.0/0.0.0.0
connman 配置文件中的情况)。
插件:我注意到在 Linux 启动期间,只要在控制台上打印“Link is up - 100Mbps/Full - flow control off”,就会设置一个 IP 地址。如何在我的用户程序中检测到它?