2011-02-12 2 views
3

Linux::Inotify2 모듈을 사용하여 새로 생성 된 파일을 볼 때 어떤 이상한 동작이 나타납니다.Perl Linux :: Inotify2 - 더 이상 이벤트에 응답 할 수 없습니다.

나는 그것이 어떻게 작동하는지 확인하기 위해 테스트 스크립트를 만들었고, 일단 완료되면 다른 스크립트에서 그 사용법을 통합하는 방식으로 작업을 진행했다. 그런 다음 이전 테스트 스크립트를 다시 시도하여 정보를 찾았을 때 이상하게 작동하지 않게되었습니다. 그 이후로는 효과가 없습니다. 그 시간 동안 패키지/배포판 업그레이드는 없었습니다.

문제는 이벤트에 응답하지 않는 것이 문제입니다. 다음은 테스트 스크립트입니다.

#!/usr/bin/perl 

use strict; 
use warnings; 

use Linux::Inotify2; 

my $inotify = new Linux::Inotify2 or die "unable to create new inotify object: $!"; 

my $dir = "/my/dir"; 

$inotify->watch($dir, IN_CREATE, sub { 
    my $e = shift; 
    print $e->fullname; 
}) or die " Can't watch $!"; 

1 while $inotify->poll; 

실행중인 스크립트에 strace가 스크립트를 죽입니다. 그렇지 않으면 strace가 스크립트를 시작할 때 사용되면 새로운 이벤트를 읽는 것처럼 보이지만 그 이벤트에 대한 응답은 없습니다. 이 디버깅을위한 제안은 무엇입니까?

답변

2

나는 $ |을 (를) 설정하는 것을 잊었습니다.