我想在将文件写入 Ubuntu 上的目录时运行一个进程。我知道我可以编写一个监视器来执行此操作。(即不是基于事件的触发器而是“监视器”)。
为了实现这一点 - 除了用 C 编写一个无限长的 for 循环来轮询目录之外 - 您还可以采取哪些步骤来实现这一点?
当文件写入目录时,您需要采取哪些步骤在 Ubuntu 上实现运行进程(另一个应用程序)的监视器?
(这样做的原因是写入文件的进程具有一组有限的权限(例如 tomcat6),但执行的进程(现有软件包)需要 root 权限(即在 chroot jail 中运行进程))
答案1
如果您正在编写 C 语言,为什么不直接使用该inotify
库?
或者,如果您只是编写一个简单的 shell 脚本,则可以使用watch
。两者均存在于所有现代 Linux 变体中。
答案2
请参阅此 StackOverflow 问题:
https://stackoverflow.com/questions/511463/monitor-directory-for-changes
另外,如果无法安装 inotify,请检查以下编程方法: