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

我可以选择哪些检查

  • 如果链接可用
  • 如果它路由到我控制的服务器(正如我之前所说,它不会访问互联网)

另外,重新启动它的最佳方法是什么 - 我希望程序控制它何时启动和停止,所以我认为 init.d 不合适。使用 system() 好像没有给出PID,除了这个还有其他选择吗 fork() 和一群 exec??() 打电话?

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

有帮助吗?

解决方案

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

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

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top