我在一个嵌入式平台(mipsel 架构,Linux 2.6 内核)上,我需要监视两个闭源进程(路由器固件)之间的 IPC,以便对某个事件(由于 DSL 重新连接而导致的动态 IP 更改)做出反应。到目前为止,我通过strace发现的是,每当 IP 更改时,DSL 守护程序都会将一条特殊消息写入绑定到特定文件名的 UNIX 域套接字中。该消息被另一个守护进程使用。
现在这是我的要求:我想监视通过该特定 UNIX 域套接字的数据流,并在检测到特定消息时触发事件(调用 shell 脚本)。我尝试使用 inotify 监视文件名,但它不适用于套接字文件。我知道我可以一直运行 strace,过滤它的输出并对过滤后的日志文件中的更改做出反应,但这将是一个过于繁重的解决方案,因为 strace 确实会减慢系统速度。我也知道我可以通过 cron 轮询 IP 地址更改,但我想要一个看门狗,而不是轮询解决方案。我很想知道是否有一种工具可以专门监视 UNIX 域套接字并对以预定义方向流过的特定消息作出反应。我想象类似于 inotifywait 的东西,即该工具应该等待某个事件,然后退出,
是否有任何现有的 Linux 工具能够做到这一点?或者是否有一些简单的 C 代码用于我可以在我的平台上编译的独立二进制文件(uClibc,而不是 glibc)?我不是 C 专家,但能够运行 makefile。使用 shell 中的二进制文件没问题,我对 shell 编程有足够的了解。