3

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

我有哪些检查选项

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

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

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

4

2 回答 2

6

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

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

于 2008-10-02T00:11:32.820 回答
3

你可以解析/proc/net/route.

于 2008-09-09T06:57:03.290 回答