Как отслеживать изменение рабочего каталога процесса? - PullRequest
2 голосов
/ 14 мая 2011

Я хочу отслеживать текущий рабочий каталог произвольного процесса с заданным PID в Linux.

Моя идея - использовать inotify в procfs. Каждый процесс имеет свой собственный каталог в / proc / PID, и есть символическая ссылка, указывающая на фактический рабочий каталог / proc / PID / cwd

Я хочу получать уведомления об изменении этой символической ссылки, но если я добавлю наблюдение за символической ссылкой, она начнет просматривать каталог, на который указывает символическая ссылка.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 14 мая 2011

Не думаю, что ты можешь. procfs не является реальной файловой системой, она генерируется только по требованию, когда вы читаете из нее.

0 голосов
/ 15 мая 2011

Вы также можете использовать strace и наблюдать за ним при выполнении системных вызовов chdir () - так как это единственный способ изменить текущий рабочий каталог.

Это действительно требование стиля отладчика, и вам нужно будет использовать интерфейсы отладки для его достижения.

0 голосов
/ 14 мая 2011

Вы ищете это? Из справочной страницы :

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.
...