如何阻止inotify监控目录?

时间:2014-08-24 10:21:26

标签: inotify

我最终遇到了一个目录被监控的情况,显然是通过inotify来触发一个不存在的进程。

我只想阻止inotify监控目录,但在搜索后reading the man page我无法找到如何执行此操作。该手册提到了inotify_rm_watch,但无法从命令行识别,或int inotify_rm_watchinotify

重启系统后,目录仍然受到监控,因此它不像杀死进程那么简单。

如何永久停止inotify监控的目录?是否有一些inotify配置文件列出了我应该将其从中删除的内容?

2 个答案:

答案 0 :(得分:3)

inotify手表不会在添加手表的过程终止后保留,更不用说重新启动了。 inotify_rm_watch不是命令行实用程序,而是由拥有监视的进程调用的函数。

如果正在监视目录,那是因为正在运行的进程正在监视它。停止运行该进程,将不再监视该目录。

答案 1 :(得分:3)

inotify_rm_watch是一个编程接口,需要从首先调用inotify_add_watch的同一进程调用。

程序使用Inotify来响应文件更改。要阻止它发生,您必须使用inotify停止特定程序。但在大多数情况下,您可能不希望阻止程序观察文件更改,因为它是他们预期行为的一部分。

您可以使用以下shell命令使用inotify列出所有程序:

ps -p $(find /proc/*/fd/* -type l -lname 'anon_inode:inotify' -print 2> /dev/null | sed -e 's/^\/proc\/\([0-9]*\)\/.*/\1/')