问题标签 [pyinotify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
731 浏览

django - 如何在文件修改时在虚拟机中重新启动 Django 开发 Web 服务器?

我有一台由 Vagrant 管理的 VirtualBox 机器。在这台机器上,我运行一个 Django 开发 Web 服务器:

代码库很大,所以我安装了更快的代码重新加载pyinotify。Django 从 1.7 开始支持它。我用的是1.7。

代码库位于同步文件夹 (NFS) 中,我使用 Sublime 3 编辑主机 (OS X) 上的文件。

但是,inotify 不能很好地与 NFS 配合使用,并且代码自动重载不起作用。

如何在 VM 中重新启动开发服务器?

0 投票
0 回答
208 浏览

python - pyinotify 只能监控两次更改,为什么?

我正在使用带有pyinotify的Celery来监控模块的变化,但是Celery的功能不起作用。我想弄清楚为什么。所以我测试了 pyinotify 模块并出现了问题。

我按照 pyinotify 的教程编写了一些代码:

我用 gedit 和 CommandLine echo 更改了 '/home/mp/Public/testfile' 两次:

然后我继续修改文件,但是无论你修改多少次文件都没有回显。

pyinotify 0.9.6

0 投票
0 回答
162 浏览

rsync - 使用 rsync 时 pyinotify 不起作用?

当我使用 rsync 更改文件时,似乎没有更新更改。我有这个 rsync 脚本:

我正在运行带有选项的 Odoo 服务器,该选项--auto-reload允许更新 python 和 xml 文件而无需重新启动服务器。如果我修改里面的文件/home/user/odoo8/addons/,那么即使我不重新启动服务器它也会更新。但是,如果我修改目录中的 antyhing source,然后执行 rsync 将更改推送到/home/user/odoo8/addons/,更改不会更新。只有当我重新启动服务器时它才会更新。

如果您“覆盖”文件,pyinotify 是否不起作用?例如,喜欢使用 rsync?

0 投票
2 回答
1826 浏览

python - 递归 pyinotify watch 阻止子目录被删除

这是一个奇怪的问题,strace 没有给我任何有用的信息。我正在使用 pyinotify 0.9.6 递归地监视目录,以便我可以将有关它的更改提交到 MySQL 数据库。问题是当我运行 pyinotify 时(无论是否被守护),我可以删除子目录中的文件,但不能删除子目录本身。rmdir 以状态 0 退出,并且在系统级别上看起来一切正常,但子目录仍然存在,只是令人不寒而栗。我可能只是因为我是框架的新手而变得愚蠢,但这里是我如何初始化手表的示例:

所以在这个例子中,如果有一个文件'/path/to/dir/file.txt'我可以在'file.txt'上运行一个rm并且它被删除,但是如果有一个子目录'/path/to /dir/subdir' 在 'subdir' 上运行 rm -r 会干净地退出,但该目录实际上并没有被删除。

此外,我的日志没有被写入,但我很确定这是我的错。

编辑:

这是一个示例 CommitFunction:

EDIT2:实际上我的日志可能没有被写入,因为在提交期间我没有在任何地方调用日志或打印函数。我只是直接写到我的 MySQL 数据库

EDIT3:好的。希望我没有深入研究。这是我在命令行上尝试的:

这是实际的提交函数:

如果您愿意,我可以继续深入,但 dbaccess 具有提交和查询数据库的所有功能(没有真正触及 fs),并且它进一步从定义我的表的“模型”文件中提取。如果有帮助的话,它是一个烧瓶/uwsgi 应用程序

0 投票
1 回答
1225 浏览

python - 如果插件路径内容是指向模块的链接,为什么参数 --auto-reload 不起作用?

描述

通常,如果您更改 python 代码意味着,您需要重新启动服务器以应用新更改。

如果--auto-reload启用该参数意味着,您不需要重新启动服务器。它可以自动重新加载 python 文件和 xml 文件,而无需重新启动服务器。它需要pyinotify。它是一个用于监控文件系统更改的 Python 模块。

上一个问题

我得到了错误:

但是我遵循了此链接的建议,现在我不再收到该错误:

在此之后,我在服务器日志中得到了这个:

这意味着它工作正常。事实上,我使用物理插件路径对其进行了测试,它确实有效。

当前问题

我的所有模块都有几个文件夹,但我只使用一个插件路径:/opt/odoo_8/src/linked-addons. 此文件夹包含我正在使用的模块的所有链接。当我运行 Odoo 时,所有模块都运行良好。

但问题是 pyinotify 无法检查链接之外的文件,也不能很好地重新加载文件。我应该怎么做才能解决这个问题?pyinotify 有没有办法识别链接的内容?

PD:我不想改变我在 Odoo 中管理模块文件夹的方式。

0 投票
0 回答
702 浏览

python - pyinotify 用于观看文件夹中的新文件创建

我正在使用 python 中的 pyinotify 模块观看正在观看的文件夹。但是文件的创建速度比 pyinotify 的事件处理程序处理它们的速度要快。有没有办法解决这个问题,所有创建的新文件都可以在以后由事件处理程序排列或占用?

代码片段:

0 投票
1 回答
3918 浏览

python - 自定义 linux 守护进程不会停止使用“服务停止”

我编写了一个自定义 python 守护程序,它通过 ubuntu 14.04 上的 init.d 脚本作为服务运行。启动服务工作正常,但是当我尝试执行“服务监视器停止”时,守护程序不会终止。我正在使用 pyinotify 来守护文件观察程序以进行更改。

在 init.d 脚本中:

...

...

...

为了确保守护进程正确处理 SIGERM,我可以手动运行它:

守护进程成功处理 SIGTERM 并正确退出。

我似乎无法弄清楚为什么当我执行“服务监视器停止”时它不处理它。

0 投票
2 回答
2410 浏览

python - Pyinotify / Watchdog 在一次编辑时触发两次修改事件

每次修改某个文件时,我都试图启动一个 python 脚本。准确地说,我在 Raspberry Pi 的串行端口上有一个设备,它将数据写入文本文件(test.txt)。我已经尝试了这两种工具 - Watchdog / Pinotify。每次修改文件(触发事件Watchdog:on_modified/Pyinotify:)IN_MODIFY,它都会重复触发。我已经尝试了所有其他方法,即使IN_CLOSE_WRITE正如某些人所建议的那样,但这根本不起作用。有人知道,一次文件更新如何只触发一个事件?

我使用 Pyinotify 的代码(有点编辑的教程文件):

或看门狗:

0 投票
0 回答
445 浏览

python - PyInotify:如何使用 pyinotify 放置嵌套监视或监视更深的目录

我正在制作手表

目录。我想查看此目录中的任何新目录,例如

我想查看创建的新目录以查找“提交”之类的文件并执行必要的操作。

现在我正在 /temp 目录上创建一个监视,在 IN_CREATE 事件上我检查它是否是一个目录,如果是,我在找到的新目录上放置一个新的监视并调用另一个事件处理程序。

代码:

如果在手表内创建手表的方法是正确的,那么一旦找到文件,我该如何停止我的内部手表?

0 投票
1 回答
297 浏览

python - 在 pyinotify ProcessEvent 中捕获错误

我在从 pyinotify 捕获事件处理程序中的错误时遇到问题。我正在尝试对写入后刚刚关闭的文件进行一些处理。

这是我的脚本的简化版本:

似乎当我收到错误或异常时,主循环中的异常或事件处理程序中的异常BaseException没有捕获错误或异常。

我收到这样开头的消息:

错误:未捕获的python异常,关闭通道(:[Errno 2]没有这样的文件或目录:

所以我的问题是:如何捕捉这些异常?