9
votes

Comment puis-je détecter lorsqu'un répertoire est monté avec inotify?

J'utilise Linux Inotify pour détecter les événements FS sur mon programme.

Comment pourrais-je être averti lorsqu'un périphérique est monté sur un répertoire surveillé?


0 commentaires

5 Réponses :



4
votes

edit: Mise à jour d'avoir moins de 5 ans obsolète

Si vous êtes sur quoi que ce soit le plus ancien des systèmes, libudev est ce que vous voulez pour la première étape.

Si vous êtes sur quelque chose à partir de cette décennie, uDisks fera tout cela pour toi aussi. Vous auriez besoin de regarder le org.freedesktop.dbus.ObjectManager interface sur / org / freeesktop / UDisks2 pour voir quand neuf Systèmes de fichiers < / a> monte.


0 commentaires

1
votes

Si cela ne vous dérange pas lots de fausses alarmes, vous pourrez peut-être surveiller pour fermer_nowrite sur / etc / fstab . . Regarder / etc / mtab , / proc / procès , etc. ne fonctionne pas pour moi.


0 commentaires

2
votes

sur les systèmes Linux modernes / etc / mtab pointe souvent sur / proc / profonctions / montures:

$ ls -l / etc / mtab LRWXRWXRWX 1 racine racine 12 Sep 5 2013 / etc / MTAB -> / Proc / Supports $ LS -L / Proc / Supports lrwxrwxrwx 1 racine root 11 juil 10 14:56 / proc / Supports -> Soi / Supports

proc (5) Manpage dit que vous n'avez pas ' Il faut vraiment utiliser Inotify pour ce fichier, il est pollable:

Depuis la version 2.6.15 du noyau, cette Le fichier est pollable: après avoir ouvert le fichier pour la lecture, un changement Dans ce fichier (c'est-à-dire un mont de système de fichiers ou une seule fois) causes Sélectionnez (2) pour marquer le descripteur de fichier comme lisible et sondage (2) et epoll_wait (2) Marquez le fichier comme ayant une condition d'erreur.

a été interrogé pourquoi inotify ne fonctionne pas sur / etc / mtab et trouvé ce manage.


0 commentaires

1
votes

inotify vous indique uniquement des démontements, et les utevents ne vous indiffent plus de mont / un démontement.

La voie à suivre est de sonder / proc / Supports, de lire dans le contenu et de garder une trace des supports que vous avez J'ai vu, puis répéter quand le sondage se réveille. Le sondage se réveillera sur ERR / PRI lorsque tout système de fichiers est monté ou démonté. xxx

Le code ci-dessus imprime simplement les points de montage au démarrage, puis sur n'importe quel montage / démonter. C'est à vous de vous "différer" de savoir ce qui a été ajouté / supprimé.

Remarque, toutes ces techniques ont été à la fois instable et / ou cassées dans des versions de Linux antérieures. Tout est devenu stable vers la fin de Linux 2.6.35 (ou peut-être un peu plus tôt).


0 commentaires