如何在linux上可靠地监控驱动器mount / umount?

时间:2012-01-08 13:47:34

标签: c++ c linux

我在这里找到了一些类似的问题,但现在都没有。

/etc/mtab的监控(inotify)无效,因为它现在与/proc/mounts同步。通过udisks进行监控无法捕获手动挂载/挂载的驱动器。 Netlink套接字也不起作用(没有mount / umount操作)。

那么监控坐骑和卸载的真正方法是什么?

P.S。 我不关心命名空间的挂载,只关心全局。

2 个答案:

答案 0 :(得分:3)

我认为udev应该可用于监控坐骑。

答案 1 :(得分:2)

您可以监控/ proc / mounts而无需轮询。将它放在exceptfds列表中以选择,和 然后每次都寻找文件的开头。这是python中的一个快速演示,但它应该很容易转换为C:

f = open("/proc/mounts")
while True:
    r,w,x = select.select([],[],[f])
    f.seek(0)
    print f.read()