如何在linux中通知程序执行

时间:2012-03-30 09:42:05

标签: linux execution inotify

inotify-tools有一个 inotifywait 程序,它有助于检测被监视文件或目录的创建,修改,打开等,但没有明显的“已执行”< / strong>事件。我也尝试了 fileschanged 实用程序,但似乎虽然“已创建”和“已修改”事件有效,但“已执行”却没有。有没有办法在选定目录中执行所选程序或程序时收到通知?

我的问题是虽然我可以使用“OPEN”inotify事件监视二进制文件的“已执行”操作,但我需要计算该二进制文件的校验和,这样它将是另一个“OPEN”操作,它会带给我无限递归。当然我可以在一个循环中使用inotifywait,每次都可以使用单一操作而不是使用监控模式,但是有可能会跳过某些事件。

2 个答案:

答案 0 :(得分:1)

据我所知,inotify中没有任何事件可以完全按照您的要求进行操作。我不确定这对你的情况是否可行,但有一件事你可以尝试避免你的“打开”递归问题是使用IN_ONESHOT选项,然后计算你的校验和并重新调用触发它的二进制文件inotify在同一个剧本中。

答案 1 :(得分:0)

如果您可以安装sysdig,则可以根据命令名称监控执行:

sudo sysdig "proc.name=foobar and evt.type=execve"