如何在我的用户空间程序中等待,直到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.0connman 配置文件中的情况)。
插件:我注意到在 Linux 启动期间,只要在控制台上打印“Link is up - 100Mbps/Full - flow control off”,就会设置一个 IP 地址。如何在我的用户程序中检测到它?