在Ubuntu上,如何devise一个监视器来在文件写入目录时运行进程?

当一个文件被写入Ubuntu上的一个目录时,我想运行一个进程。 我明白我可以写一个监视器来做到这一点。 (即不是一个基于事件的触发器,而是一个“监视器”)。

为了实现这一点 – 除了在C中轮询目录的时候写一个无限循环的for循环,你会采取哪些步骤来实现呢?

当一个文件被写入一个目录时,你将采取哪些步骤在Ubuntu上运行一个进程(另一个应用程序)来实现一个监视器?

(你这样做的原因是编写文件的过程是在有限的权限下(例如tomcat6),但是执行的过程(一个现有的软件包)需要root权限(即在chroot jail中运行一个进程) )

如果你正在编写C,为什么不使用inotify库?

或者如果你只是写一个简单的shell脚本,你可以使用watch 。 两者都是现代Linux的变体。

看到这个StackOverflow问题:

https://stackoverflow.com/questions/511463/monitor-directory-for-changes

或者,如果安装inotify是不可能的结帐这些编程手段:

http://aplawrence.com/Unixart/watchdir.html