为什么 `inotifywatch --recursive /proc -v` 无法查看 `/proc` 中所有创建的目录?

为什么 `inotifywatch --recursive /proc -v` 无法查看 `/proc` 中所有创建的目录?

在一个终端中,我运行以下命令,随着时间的推移,该命令会生成大量目录/proc

$ while true; do /bin/echo helloworld | cat -; echo $$; sleep 3s; done

然后几分钟后,我检查 的输出inotifywatch,其中仅包含几个目录:

$ sudo inotifywatch --recursive /proc -v
Establishing watches...
Setting up watch(es) on /proc
OK, /proc is now being watched.
Total of 5718 watches.
Finished establishing watches, now collecting statistics.
^Ctotal  access  close_nowrite  open  filename
1558   540     509            509   /proc/
816    272     272            272   /proc/1529/
168    56      56             56    /proc/437/
105    35      35             35    /proc/3496/
57     19      19             19    /proc/1/
42     14      14             14    /proc/419/
38     22      8              8     /proc/1632/
21     7       7              7     /proc/1120/
12     4       4              4     /proc/sys/kernel/
12     4       4              4     /proc/211/
12     4       4              4     /proc/219/
6      2       2              2     /proc/292/
6      2       2              2     /proc/415/
6      2       2              2     /proc/568/

为什么无法inotifywatch --recursive /proc -v看到所有创建的目录/proc

是因为这/proc是一个伪文件系统并且inotifywatch仅适用于真实文件系统吗?如果是这样,为什么inotifywatch能够输出一些目录(见上文)?

我也尝试执行inotifywatchusing sudo,但结果是相同的。

操作系统

PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

答案1

您无法/proc使用 inotify 观看或任何其他伪文件系统。

inotify(7)

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

相关内容