4

我正在尝试将“ inotify_add_watch”用于流程。我这样做的目的是在进程被终止时得到通知。

我的通知代码是,

wd = inotify_add_watch(ifd, "/proc",IN_ALL_EVENTS);

但即使进程被删除并且目录从 /proc 文件夹中删除,它也不会通知。

4

2 回答 2

4

在许多 Linux 发行版中,/proc挂载为procfs. 确实报告和
Inotify中的一些但不是所有事件。 sysfsprocfs

参考: http:
//en.wikipedia.org/wiki/Inotify#Limitations
http://en.wikipedia.org/wiki/Procfs
http://inotify.aiken.cz/?section=inotify&pa​​ge =faq (搜索procfs
选择procfs 文件上的功能(搜索procfs

于 2013-12-03T15:39:18.900 回答
3

Inotify 不支持 sysfs 和 procfs 等伪文件

proc 和 sys 文件系统有时被称为进程信息伪文件系统。它不包含“真正的”文件,而是包含运行时系统信息(例如系统内存、安装的设备、硬件配置等)。

Inotify 仅报告用户空间程序通过文件系统 API 触发的事件。因此,它不会捕获网络文件系统上发生的远程事件。(应用程序必须回退到轮询文件系统以捕获此类事件。)此外,各种伪文件系统,如 /proc、/sys 和 /dev/pts 无法使用 inotify 进行监控。

http://man7.org/linux/man-pages/man7/inotify.7.html

于 2018-04-06T07:53:32.090 回答