3

Linuxで特定のPIDを使用して任意のプロセスの現在の作業ディレクトリを監視したいと思います。

私の考えは、procfsでinotifyを使用することです。すべてのプロセスには/proc/ PIDの下に独自のディレクトリがあり、実際の作業ディレクトリ/ proc / PID/cwdを指すシンボリックリンクがあります。

このシンボリックリンクが変更されたときに通知を受け取りたいのですが、シンボリックリンクにウォッチを置くと、シンボリックリンクが指すディレクトリのウォッチが開始されます。

何か案は?

4

3 に答える 3

1

strace を使用して、chdir() システム コールを作成するのを監視することもできます。これは、現在の作業ディレクトリを変更する唯一の方法であるためです。

これは実際にはデバッガー スタイルの要件であり、これを実現するにはデバッグ インターフェイスを使用する必要があります。

于 2011-05-14T20:50:59.260 に答える
0

私はあなたができるとは思わない。procfs は実際のファイル システムではなく、読み取り時にオンデマンドでのみ生成されます。

于 2011-05-14T18:40:20.943 に答える
0

これを探していますか?マンページから:

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.
于 2011-05-14T18:31:54.813 に答える