데비안에서 가짜 inotify 이벤트를 만드는 방법은 무엇입니까?

데비안에서 가짜 inotify 이벤트를 만드는 방법은 무엇입니까?

나는 데비안에서 minidlna를 실행하는 전용 상자를 가지고 있으며, 공유 cifs 드라이브에서 미디어 파일을 가져옵니다.

midia 상자를 사용하지 않고 공유에 새 파일을 추가하면 inotify 이벤트가 생성되지 않기 때문에 minidlna가 새 파일을 인식하지 못합니다.

가끔 미디어 상자에서 터치를 실행하는 새 파일을 인식하도록 하는 해결 방법을 찾았지만 minidlna는 폴더에 대해 IN_CREATE 및 IN_MOVED_TO 이벤트만 인식하고 터치는 파일 폴더 생성에 대해 인식하지 않기 때문에 폴더에서는 작동하지 않습니다. 이러한 이벤트.

그래서 이 "가짜" 이벤트를 생성하는 다른 방법이 있는지, 폴더를 이동하지 않고 폴더에 대해 이러한 이벤트 중 하나를 생성하는 방법을 알고 있는지 궁금합니다.

답변1

CIFS 파일 시스템을 사용하면 mount -o remount어떻게 되나요 ?

디렉토리가 알림 이벤트를 올바르게 실행하지 않기 때문에 이는 CIFS 구현의 버그처럼 들립니다.

기존 inotify 스트림에 이벤트를 주입하는 방법에 대한 참조를 찾을 수 없습니다. 그렇게 생각해요할 수 있다이는 SystemTap을 사용하여 수행할 수 있지만 실용적이지 않습니다. 더 나은 해결책은 버그 보고서 ReadyMedia(SourceForge.net의 현재 프로젝트 이름)를 제출하는 것입니다.

SF.net에서 코드를 잠깐 봤는데 notify.c괜찮아 보였지만 단 30초 만에 시계 추가/제거 코드에서 메모리 누수가 드러났습니다. :( 하지만 디렉터리 알림을 제대로 지원하도록 코드를 수정하는 것은 어렵지 않을 것 같습니다.

답변2

inotify 이벤트를 가짜로 만들고 싶은 파일을 알고 있다면 다음 방법이 도움이 될 수 있습니다.

chmod $(stat -c %a $filePath) $filePath

동일한 속성을 다시 파일에 설정하고 변경 사항은 없지만 inotify가 트리거됩니다.

변경된 특정 파일을 모르는 경우 다음을 fswatch사용할 수 있습니다.여론 조사 모니터이벤트에 의존하지 않음:

fswatch -r -m poll_monitor $folderPath

관련 정보