我想在 Linux 下监视具有给定 PID 的任意进程的当前工作目录。
我的想法是在 procfs 上使用 inotify。每个进程在 /proc/PID 下都有自己的目录,并且有一个符号链接指向实际的工作目录 /proc/PID/cwd
我想在这个符号链接发生变化时得到通知,但是如果我在符号链接上放置一个监视,它将开始监视符号链接指向的目录。
有任何想法吗?
您也可以使用 strace 并观察它进行 chdir() 系统调用 - 因为这些确实是更改当前工作目录的唯一方法。
这确实是一个调试器风格的需求,您将需要使用调试接口来实现它。
你在找这个吗?从手册页:
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.
我不认为你可以。procfs 不是真正的文件系统,它仅在您读取时按需生成。