inotify 未能启动观察者
inotify failed to start the watcher
全部,
我正在尝试使用 inotify 编写文件监视服务。这是我的代码:
m_fd = inotify_init1( IN_NONBLOCK );
if( m_fd == -1 )
{
syslog( LOG_ERR, "Failed to initialize inotify" );
m_isOK = false;
}
else
syslog( LOG_DEBUG, "Inotify initialize successfully" );
m_wd = inotify_add_watch( m_fd, log.c_str(), IN_CLOSE );
if( m_wd == -1 )
{
std::string error = "Failed to add log watching to inotify, error is " + std::to_string( errno );
syslog( LOG_ERR, error.c_str() );
m_isOK = false;
}
else
syslog( LOG_DEBUG, "Watching system intrusion file log added" );
当我尝试执行它时,它执行了 运行 一次成功。但是,之后每次我尝试 运行 它时,我都会进入日志:
Failed to add log watching to inotify, error is 2.
即使在重新启动系统后也会发生这种情况。
由于错误 2 是 File sharing
错误,我想系统上存在一些 lock_file
,我需要删除它们才能使 inotify_add_watch()
成功。
有人可以帮忙吗?或者也许我完全错了,还有别的东西?
TIA!
[编辑]
我正在尝试查看文件何时会在磁盘上创建,以便我可以开始处理它。我是不是用错了面膜?
同时修改行:
m_wd = inotify_add_watch( m_fd, log.c_str(), IN_CLOSE );
阅读:
m_wd = inotify_add_watch( m_fd, log.c_str(), IN_CREATE | IN_CLOSE );
不会改变结果。我仍然失败,errno 为 2
。
[/编辑]
显然,我无法观看文件创建过程。
我必须查看相应的目录,然后检查 inotify_event 正在创建的文件名。
感谢您的阅读,抱歉造成交通堵塞。
全部,
我正在尝试使用 inotify 编写文件监视服务。这是我的代码:
m_fd = inotify_init1( IN_NONBLOCK );
if( m_fd == -1 )
{
syslog( LOG_ERR, "Failed to initialize inotify" );
m_isOK = false;
}
else
syslog( LOG_DEBUG, "Inotify initialize successfully" );
m_wd = inotify_add_watch( m_fd, log.c_str(), IN_CLOSE );
if( m_wd == -1 )
{
std::string error = "Failed to add log watching to inotify, error is " + std::to_string( errno );
syslog( LOG_ERR, error.c_str() );
m_isOK = false;
}
else
syslog( LOG_DEBUG, "Watching system intrusion file log added" );
当我尝试执行它时,它执行了 运行 一次成功。但是,之后每次我尝试 运行 它时,我都会进入日志:
Failed to add log watching to inotify, error is 2.
即使在重新启动系统后也会发生这种情况。
由于错误 2 是 File sharing
错误,我想系统上存在一些 lock_file
,我需要删除它们才能使 inotify_add_watch()
成功。
有人可以帮忙吗?或者也许我完全错了,还有别的东西?
TIA!
[编辑]
我正在尝试查看文件何时会在磁盘上创建,以便我可以开始处理它。我是不是用错了面膜?
同时修改行:
m_wd = inotify_add_watch( m_fd, log.c_str(), IN_CLOSE );
阅读:
m_wd = inotify_add_watch( m_fd, log.c_str(), IN_CREATE | IN_CLOSE );
不会改变结果。我仍然失败,errno 为 2
。
[/编辑]
显然,我无法观看文件创建过程。
我必须查看相应的目录,然后检查 inotify_event 正在创建的文件名。
感谢您的阅读,抱歉造成交通堵塞。