对于手动编辑的文件,inotify IN_CLOSE_WRITE仅触发一次

时间:2013-11-21 17:37:08

标签: python logging vim inotify

我正在使用gevent和gevent_inotifyx运行python来监视文件,使用IN_CLOSE_WRITE掩码进行任何修改,等待文件在写入后关闭。我的活动是第一次被解雇但不是之后。我使用vim手动编辑文件。

使用不同的日志文件进行观察,并按预期工作。这是一个python日志文件,任何时候日志文件都会随着内容的变化而被触发。

有没有人遇到过这种情况?这可能是由于某些同步或刷新到磁盘?

1 个答案:

答案 0 :(得分:6)

默认情况下,Vim将文件内容写入临时文件,然后将其移动到原始文件上,请参阅:help backup。由于现在这是一个不同的文件(句柄),您的事件将停止触发。

您可以通过设置

使Vim覆盖原始文件
:set backupcopy=yes

如果你想要处理这个问题,你必须监控文件的目录,并监视文件移动。