inotifywait 매뉴얼 페이지에서 "명시적으로 듣지 않음"은 무엇을 의미합니까?

inotifywait 매뉴얼 페이지에서 "명시적으로 듣지 않음"은 무엇을 의미합니까?

남자 inotify 기다려:

delete_self가 모니터링하는 파일 또는 디렉터리가 삭제되었습니다. 이 이벤트 후에는 파일이나 디렉터리가 더 이상 모니터링되지 않습니다. 이 이벤트를 명시적으로 수신하지 않는 경우에도 이 이벤트가 발생할 수 있습니다.

unmount 모니터링되는 파일 또는 디렉터리가 있는 파일 시스템이 마운트 해제되었습니다. 이 이벤트 후에는 파일이나 디렉터리가 더 이상 모니터링되지 않습니다. 이 이벤트를 명시적으로 수신하지 않는 경우에도 이 이벤트가 발생할 수 있습니다.

해당 매뉴얼 페이지에서 "이벤트가 명시적으로 청취되지 않은 경우에도 이벤트가 발생할 수 있다"는 의미를 어떻게 이해합니까?

https://manpages.debian.org/stretch/inotify-tools/inotifywait.1.en.html

답변1

inotifywait에게 이벤트(즉, --monitor패턴이 아닌)를 기다리도록 요청하고 하나 이상의 이벤트 유형을 지정하면( options 사용 --event) 일반적으로 해당 특정 이벤트가 발생할 때까지 종료되지 않습니다. 예를 들어:

$ touch foo
                                    $ inotifywait -e access foo
                                    Setting up watches.
                                    Watches established.
$ echo >>foo

$ cat foo
                                    foo ACCESS 
$                                   $ echo $?
                                    0
                                    $

(두 열은 개별 단말기를 나타내며, 빈 행을 삽입하여 이벤트가 시간순으로 나타나도록 합니다.) 여기서 시계를 설정한 후 fooMODIFY 이벤트가 있지만 이벤트 필터에 inotifywaitMODIFY가 포함되어 있지 않기 때문에 아무 일도 일어나지 않습니다. 이 inotifywait명령은 ACCESS 이벤트가 발생한 후에만 반환됩니다.

이제 액세스를 모니터링하는 동안 파일이 삭제되었다고 가정합니다.

                                    $ inotifywait -e access foo
                                    Setting up watches.
                                    Watches established.
$ rm foo
$                                   $ echo $?
                                    1
                                    $

foo를 삭제하면 DELETE_SELF 이벤트가 트리거됩니다. 이 inotifywait명령은 이 이벤트를 확인합니다. ACCESS 이벤트만 보고하도록 되어 있으므로 인쇄되지 않습니다. 그러나 inotifywait종료: 필터에 없더라도 이벤트를 계산합니다. 명령은 상태 1로 종료됩니다. 이는 "청취되지 않은 이벤트가 발생했습니다"(대부분의 모니터링되지 않는 이벤트처럼 무시되지 않음)를 의미합니다.

답변2

이는 이 옵션을 사용하지만 지정하지 않은 경우에도 -e이러한 이벤트를 얻을 수 있음 을 의미합니다. 예를 들어, 다음을 사용하는 경우

inotifywait -e modify filename

delete_self해당 파일이 삭제 되면 이벤트를 신청만 하신 경우에도 이벤트를 받게 됩니다 modify.

이는 특정 이벤트만 요청한 경우에도 출력에서 ​​이벤트 유형을 확인해야 함을 의미합니다.

관련 정보