inotify는 어떻게 작동합니까?


14

에 따르면 위키 백과 ,

inotify는 파일 시스템의 변경을 알리는 Linux 커널 하위 시스템입니다. 이전의 dnotify를 대체했습니다.

파일을 동기화하는 프로그램 (예 : crashplan, dropbox, git)은 사용자가 max_user_watches( 1 , 2 , 3 ) 늘리도록 권장 합니다.

내가 inotify에 대해 이해 한 바에 따르면, OS는 OS가 변경 사항을 "찾아"보지 않고 파일이 변경되었다는 것을 "발견"합니다.

모든 디렉토리에 "inotify"파일이 있다고 가정합니다. 이 올바른지? 커맨드 라인에서 inotify와 상호 작용하는 방법이 있습니까?

자원
왜 inotify 이벤트가 NFS 마운트에서 다른가?
디렉토리에서 많은 수의 파일을 기다리는 Inotifywait


당신은 아마도 이런 식으로 당신의 질문에 대한 대답을 찾지 못할 것입니다 (적어도 쉽지는 않지만) grep --exclude=arch -r inotifyLinux 커널 소스에서 실행해야 합니다.

답변:


21

Inotify는 내부 커널 기능입니다. "inotify 파일"이 없습니다. 이 전용 시스템 호출은 inotify_init, inotify_add_watch그리고 inotify_rm_watch그 프로세스가 특정 파일 시스템 이벤트가 발생하면 자체는 통지를 등록 할 수 있습니다. 이벤트가 발생하면 프로세스는에서 반환 한 파일 설명자를 통해 이벤트에 대한 설명을받습니다 inotify_init.

OS는 파일이 변경되었다고 말하는 것이 아니라 변경을 수행하고 있기 때문에 알고 있습니다. 파일을 보지 않고 변경되었음을 알려주는 응용 프로그램입니다.

이 프로그램 inotifywait은 명령 줄에서 inotify를 사용하는 간단한 방법을 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.