确定何时使用inotify打开TCP套接字

正如标题所示,是否有一种方法通知使用inotify / inotify-tools最近打开的套接字? 据我可以告诉inotify只适用于inode,特别是testing如果这些inode是套接字不是inotify实际上是能够的。 除此之外,我似乎无法find插槽FD的存储位置。 我只能看到他们的文件描述符是符号链接:

# ls -l /proc/29711/fd/10 lrwx------ 1 root root 64 Mar 6 17:04 /proc/29711/fd/10 -> socket:[750728] # stat /proc/29711/fd/10 File: `/proc/29711/fd/10' -> `socket:[750728]' Size: 64 Blocks: 0 IO Block: 1024 symbolic link Device: 3h/3d Inode: 759700 Links: 1 Access: (0700/lrwx------) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2013-03-06 17:05:22.690411801 +1100 Modify: 2013-03-06 17:04:14.062414880 +1100 Change: 2013-03-06 17:04:14.062414880 +1100 Birth: - 

Inotify用于文件系统事件监视,所以除非有特殊的FS表示系统的套接字 – 没办法。

我build议特别关注netlink和NETLINK_INET_DIAG ,但是我无法确定它是否有相应的设施。

更新:我已经分享了这个问题 – 答案和Pavel Emelyanov – CRIU的主要开发者,证实了我的怀疑 – 更可能你不能用netlink得到这些通知。

别忘了proc filesystem是一个逻辑文件系统。 所以它不支持real filesystem相同的软链接或硬链接.ext族,reiserfs,ufs等是真正的文件系统。 sysfslogical filesystem实际的logical filesystems正在处理内存。