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

时间:2008-09-09 06:32:42

标签: c linux networking embedded ppp

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

我可以选择检查

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

此外,重启它的最佳方法是什么 - 我希望程序控制它何时启动和停止,所以我认为init.d不合适。使用system()似乎没有提供PID,除fork()以及exec??()调用之外还有其他选项吗?

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

2 个答案:

答案 0 :(得分:6)

当IP接口启动并准备就绪时,您可以使用pppd的ip-up脚本功能让它执行程序。详细信息在pppd(8) man page - 搜索“ip-up”。

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

答案 1 :(得分:3)

您可以解析/proc/net/route