我最终遇到了一个目录被监控的情况,显然是通过inotify来触发一个不存在的进程。
我只想阻止inotify监控目录,但在搜索后reading the man page我无法找到如何执行此操作。该手册提到了inotify_rm_watch
,但无法从命令行识别,或int inotify_rm_watch
或inotify
。
重启系统后,目录仍然受到监控,因此它不像杀死进程那么简单。
如何永久停止inotify监控的目录?是否有一些inotify配置文件列出了我应该将其从中删除的内容?
答案 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/')