【问题标题】:How to stop inotify from monitoring a directory?如何停止 inotify 监视目录?
【发布时间】:2014-10-17 16:53:55
【问题描述】:

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

我只是想阻止inotify 监视目录,但是在搜索和reading the man page 之后我找不到如何执行此操作。手册中提到了inotify_rm_watch,但运行它,或int inotify_rm_watch,或inotify,都无法从命令行识别。

重启系统后该目录仍会被监控,所以并不像杀死一个进程那么简单。

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

【问题讨论】:

    标签: inotify


    【解决方案1】:

    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/')
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-24
        • 1970-01-01
        • 1970-01-01
        • 2011-11-25
        • 1970-01-01
        • 2021-05-10
        • 2011-12-16
        • 1970-01-01
        相关资源
        最近更新 更多