터미널에서 다음 명령을 실행하면 시간이 지남에 따라 많은 수의 디렉터리가 생성됩니다 /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
일부 디렉토리를 내보낼 수 있는 이유는 무엇입니까(위 참조)?
나는 또한 inotifywatch
using을 사용해 보았지만 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를 사용하여 감시하거나 다른 의사 파일 시스템을 사용할 수 없습니다 .
~에서이노티파이(7):
Inotify는 파일 시스템 API를 통해 사용자 공간 프로그램에 의해 트리거된 이벤트만 보고합니다. 따라서 네트워크 파일 시스템에서 발생하는 원격 이벤트를 캡처하지 않습니다. (응용 프로그램은 이러한 이벤트를 캡처하기 위해 파일 시스템 폴링으로 대체해야 합니다.) 또한 다양한 의사 파일 시스템(예: /proc, /sys 및 /dev/pts)은 inotify를 사용하여 모니터링할 수 없습니다.