开发者

How to monitor the change of a process's working directory?

I want to monitor the current working directory of an arbitrary process with a given PID under Linux.

My idea is to use inotify on the procfs. Every process has its own directory under /proc/PID and there is a symlink pointing to the actual working directory /proc/PID/cwd

I w开发者_开发百科ant to get notified when this symlink changes, but if I put a watch on the symlink it will start watching the directory the symlink points to.

Any ideas?


You may as well use strace and watch it for making chdir() system calls - as those really are the only way to change the current working directory.

This is really a debugger-style requirement, and you're going to need to use debug interfaces to achieve it.


Are you looking for this? From man page:

The following further bits can be specified in mask when calling
inotify_add_watch(2):

IN_DONT_FOLLOW (since Linux 2.6.15)
    Don't dereference pathname if it is a symbolic link.


I don't think that you can. procfs is not a real file system, it is only generated on demand when you read from it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜