开发者

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

开发者 https://www.devze.com 2023-03-06 10:05 出处:网络
I want to monitor the current working directory of an arbitrary process with a given PID under Linux.

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

精彩评论

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