LINUX.ORG.RU

Си. Как бы мне получить список процессов, работающих с конкретным файлом?

 , ,


0

1

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

Как бы мне узнать какие процессы сейчас что-то делают с файлом? Парсинг /proc не выглядит здравой идеей.


fuser же! А потом по пидам проходишь и strace на процессы

seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 1)

В линуксе (как и в остальных ОС), насколько я знаю, нет нормального апи для это задачи. Так что варианта два: либо парсить /proc, либо парсить /dev/kmem, что ещё хуже.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Правильно. Потому что с хрен ли кому-то извне интересоваться, чем процесс занимается? Если нужно шпионить за процессом - бери strace.

seiken ★★★★★
()
Ответ на: комментарий от seiken

А если нужно понять, спит процесс или нет, можно посмотреть значение wchan из ps, т.е. тот же procfs.

seiken ★★★★★
()

Если знаешь путь к файлу и он фиксирован, можешь поставить auditd и загрузить в него watch на конкретный файл. А результат доступа смотреть в системных логах или ausearch.

seiken ★★★★★
()
Ответ на: комментарий от seiken

Не знаю имени. На данный момент выясняю его с помощью inotify.

Вообще моя цель – демон, который будет отслеживать создание файлов в директории и выяснять какая падла эти фалы создаёт. И когда.

Usruser
() автор топика

Единственный вариант - парсить /proc, так и делают fuser, lsof, ps и т.д., и т.п.

anonymous
()
Ответ на: комментарий от Usruser

Натрави inotify на дерево файловых идентификаторов подозрительных процессов, да смотри, что там за нафиг происходит.

anonymous
()

fuser/lsof
По /proc/pid/fd по идее можно смотреть если сам накостылять хочешь

mittorn ★★★★★
()
Ответ на: комментарий от anonymous

Зы: вместо sys_enter_open пиши sys_enter_openat

anonymous
()
Ответ на: комментарий от sergej

Парсинг /proc не выглядит здравой идеей

можно парсить вывод lsof

Тонко

pathfinder ★★★★
()

< Pre > тэги сжирает тварь

apt-cache show loggedfs

Package: loggedfs Version: 0.9+ds-3 Installed-Size: 243 Maintainer: Stephen Kitt skitt@debian.org Architecture: amd64 Depends: fuse (<< 3) | fuse3 (>= 3.10.1-3), libc6 (>= 2.14), libfuse2 (>= 2.8), libgcc-s1 (>= 3.0), libpcre3, libstdc++6 (>= 9), libxml2 (>= 2.7.4) Size: 79760 SHA256: a7ff67d9253f8c68f4b25639168981c001afd5551396c8ae88f02ca9ac8ef200 SHA1: b7652fa4c095e489f4abc91d592dcc6f99cc680f MD5sum: 2a23d6621fcb8919357dd47394497180 Description: User-controllable logging file system LoggedFS is a logging file system which can log every operation happening in it. It mounts transparently over any directory and logs operations inside that directory (and its children). . The amount of logging is configurable, and since LoggedFS uses FUSE, it can be controlled by users without system administrator involvement. Description-md5: 3f4bf1b9c901d6ad3adc87b6a772934f Homepage: https://rflament.github.io/loggedfs/ Section: admin Priority: optional Filename: pool/main/l/loggedfs/loggedfs_0.9+ds-3_amd64.deb

anonymous
()
Ответ на: комментарий от Usruser

Этот демон уже существует: auditd, как вам уже неоднократно указывали.

i586 ★★★★★
()
Последнее исправление: i586 (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.