有没有办法找出子进程写入和读取的文件?
理想情况下,我想创建一些子进程,将其包装在一个函数中,然后查询该子进程以查看子进程触及的文件:
p = sp.Popen(['ls', '-l'], stdout=sp.PIPE)
wp = watch_files(p)
out, err = wp.communicate()
print wp.files_read(), wp.files_written()
watch_files
是我要实施的内容。如果这样的事情存在或如何实施它的任何想法?
答案 0 :(得分:3)
在Unix上,我从strace -fTt
开始,寻找stat
或open
系统调用。
您可以捕获strace
的输出 - 默认情况下strace
打印到STDERR
。您可以将其输出“保存”到-o
的日志文件中。
您可能会发现在查看当前文件描述符(打开文件)的/proc/<pid>/fd
中有一些里程。