I'm using Linux Inotify to detect FS events on my program.
How could I be notified when a device is mounted on a monitored directory?
I don't think you can do it with inotify
. Here is the method though:
"ACTION"
is not "mount"
."/proc/mounts"
when you get an event with a "mount"
action.EDIT: Update to be less than 5 years obsolete
If you're on anything but the most ancient of systems, libudev is what you want for the first step.
If you're on something from this decade, udisks will do all of this for you, too. You'd need to watch the org.Freedesktop.DBus.ObjectManager interface on /org/freedesktop/UDisks2 to see when new filesystems turn up.
On modern Linux systems /etc/mtab often points to /proc/self/mounts:
$ ls -l /etc/mtab
lrwxrwxrwx 1 root root 12 Sep 5 2013 /etc/mtab -> /proc/mounts
$ ls -l /proc/mounts
lrwxrwxrwx 1 root root 11 Jul 10 14:56 /proc/mounts -> self/mounts
proc(5) manpage says that you don't really need to use inotify for this file, it is pollable:
Since kernel version 2.6.15, this file is pollable: after opening the file for reading, a change in this file (i.e., a filesystem mount or unmount) causes select(2) to mark the file descriptor as readable, and poll(2) and epoll_wait(2) mark the file as having an error condition.
Was wondered why inotify not works on /etc/mtab and found this manpage.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With