所以我在 Linux 下使用蜂窝调制解调器运行 PPP。我正在编写的程序需要在发送任何数据之前知道链接是否处于事件状态。
我要检查哪些选项
- 如果链接可用
- 如果它路由到我控制的服务器(它不像我之前说的那样去互联网)
此外,重新启动它的最佳方式是什么 - 我希望程序控制它何时启动和停止,所以我认为 init.d 不合适。使用 system()
似乎没有提供 PID,除了 fork()
和 exec??()
之外还有其他选择吗> 电话?
ARM 上 Linux 上的 C(使用 buildroot 的自定义分发版)。
最佳答案
您可以使用 pppd 的 ip-up
脚本功能让它在 IP 接口(interface)启动并准备就绪时执行程序。详情在pppd(8) man page - 搜索“ip-up”。
要重新启动 pppd,请使用 linkname
参数设置一个已知的 pid 文件名 (/var/run/ppp-name.pid
)。还可以使用 persist
选项。当你想重新启动 pppd 时,发送 SIGHUP
信号。同样,这在手册页中有描述。
关于在程序中检查网络状态和控制PPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51296/