tial python 实现
FreeBSD中,可以使用kevent ("kqueue")机制来监测vnode的变化(可以同时看着多 个打开的vnode)。 具体的C实现可以参考: http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/tail/forward.c?annotate=1.41 Python可以借助 py-kqueue (devel/py-kqueue) 调用 FreeBSD 的 kqueue 支持。
import time, os filename = 'access_20090602.log' file = open(filename,'r') st_size = os.stat(filename)[6] file.seek(st_size) while 1: where = file.tell() line = file.readline() if not line: time.sleep(1) file.seek(where) else: print line,