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

Ada*_*vis 3 c linux embedded networking ppp

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

我有什么选择可以检查

  • 如果链接可用
  • 如果它路由到我控制的服务器(它没有像我之前所说的那样上网)

另外,重启它的最佳方法是什么 - 我希望程序控制它何时启动和停止,所以我认为init.d不合适.使用system()似乎没有给出PID,还有其他选项fork()和一堆exec??()电话吗?

C on Linux on ARM(使用buildroot进行自定义分发).

cam*_*amh 6

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

要重新启动pppd,请使用该linkname参数设置已知的pidfile名称(/var/run/ppp-name.pid).也可以使用该persist选项.如果要重新启动pppd,请发送SIGHUP信号.同样,这在手册页中进行了描述.