gpt4 book ai didi

python - 如何获取导致文件系统事件的进程的 PID?

转载 作者:太空宇宙 更新时间:2023-11-04 04:53:33 24 4
gpt4 key购买 nike

我正在考虑使用 python-watchdog。有没有办法确定哪个进程 (PID) 导致检测到的事件?


背景:我正在寻找一种方法来检测由某些编辑器(如 vimpycharmkate)引起的修改事件。简而言之,这些编辑器在保存更改时不会“修改”原始文件。相反,他们创建了一个新的并将其与旧的交换 - 以略有不同的各种方式。参见 related issue in python-watchdog .我没有重新配置这些编辑器,而是在寻找检测这些 [创建/删除/移动] 事件序列并可靠地重新解释为原始文件的“伪修改”事件的方法。

最佳答案

Demo of LoggedFS-python inside Jupyter

以上演示可用here .

任何基于 inotify 的解决方案,例如 python-watchdog,将无法提供进程 ID (PID)。它本质上是 inotify 本身的规范限制。唯一实际捕获 PID 的地方是 VFS-layer的操作系统。这意味着必须能够访问实际的文件系统实现 - 或者从头开始实现文件系统。

我实现了 LoggedFS-python , 一个 FUSE file system ,正是为了这个目的。它通过任何操作传递到底层“实际”文件系统,并且可以访问导致操作的 PID,以及其他附加信息。

loggedfs.loggedfs_notify 提供相关基础设施。

关于python - 如何获取导致文件系统事件的进程的 PID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47623037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com