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