Perl Linux :: Inotify2 - 无法再响应事件

时间:2011-02-12 07:08:59

标签: perl events inotify

使用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时,它似乎确实会读取新事件,但是对这些事件没有响应。有进一步调试的建议吗?

1 个答案:

答案 0 :(得分:2)

我忘了设置$ |。