在程序中检查网络状态并控制PPP

时间:2020-03-05 18:49:52  来源:igfitidea点击:

因此,我正在使用蜂窝调制解调器在Linux下运行PPP。我正在编写的程序在发送任何数据之前需要知道链接是否处于活动状态。

我要检查的选项是什么

  • 如果链接可用
  • 如果它路由到我控制的服务器(不像我之前说的那样去互联网)

另外,重新启动它的最佳方法是什么,我想让程序控制它的启动和停止时间,所以我认为init.d是不合适的。使用system()似乎没有给出PID,除了fork()和exec ??()调用之外还有其他选择吗?

Linux on ARM上的C(使用buildroot的自定义分发)。

解决方案

回答

我们可以解析/ proc / net / route

回答

我们可以使用pppd的" ip-up"脚本功能在IP接口启动并准备就绪时执行程序。详细信息在pppd(8)手册页中搜索" ip-up"。

要重新启动pppd,请使用linkname参数设置一个已知的pidfile名称(/var/run/ppp-name.pid)。也可以使用" persist"选项。当我们想重新启动pppd时,发送SIGHUP信号。同样,这在手册页中有介绍。