【问题标题】:inotify failed to start the watcherinotify 启动 watcher 失败
【发布时间】:2020-01-14 12:43:51
【问题描述】:

所有,

我正在尝试使用 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 );

不会改变结果。我仍然遇到错误,错误号为2

[/编辑]

【问题讨论】:

    标签: inotify file-sharing


    【解决方案1】:

    显然,我无法观看文件创建文件。

    我必须查看相应的目录,然后检查 inotify_event 以获取正在创建的文件名。

    感谢您的阅读,对流量感到抱歉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-25
      • 2014-11-17
      • 2019-08-11
      • 2015-08-24
      • 2021-08-26
      • 2013-11-30
      • 2021-03-29
      相关资源
      最近更新 更多