Как определить, какой процесс-демон записывает в файл - PullRequest
4 голосов
/ 23 января 2012

Мне нужно идентифицировать процесс-демон, который периодически записывает в файл журнала.Проблема в том, что я понятия не имею, какой процесс выполняет работу, и мне нужно показать клиенту определенный прогресс к завтрашнему дню.У кого-нибудь есть подсказки?

Я уже разобрался с процессами демона, работающими в системе с помощью PPID.Буду признателен за любую помощь.

Также я думаю, что для демона возможно (редко) не иметь PPID как 1. Как мы можем тогда узнать это?

Ответы [ 3 ]

7 голосов
/ 23 января 2012

Попробуйте команду fuser в вашем файле журнала, которая отобразит PID процессов, использующих ее.

Пример:

$ fuser file.log
file.log:  3065
4 голосов
/ 23 января 2012

lsof дает список открытых файлов с процессами. Так что lsof | grep <filename> должно вам помочь.

2 голосов
/ 04 апреля 2016

Вы можете использовать Auditctl.

# sudo apt-get install auditd
# sudo /sbin/auditctl -w /path/to/file  -p war -k hosts-file
-w watch /etc/hosts
-p warx watch for write, attribute change, execute or read events
-k hosts-file is a search key.
# sudo /sbin/ausearch -f /path/to/file | more

Дает вывод, такой как

type = UNKNOWN [1327] msg = аудит (1459766547.822: 130): proctitle = 2F7573722F7362696E2F61706163686532002D6B007374617274 type = PATH msg = аудит (1459766547.822: 130): item = 0 name = "/ path / to / file" inode = 141561 dev = 08: 00 mode = 0100444 ouid = 33 ogid = 33 rdev = 00: 00 nametype = NORMAL тип = CWD msg = аудит (1459766547.822: 130): cwd = "/" type = SYSCALL msg = аудит (1459766547.822: 130): arch = c000003e syscall = 2 success = yes exit = 41 a0 = 7f3c23034cd0 a1 = 80000 a2 = 1b6 a3 = 8 элементов = 1 ppid = 24452 pid = 6797 auid = 42949672 95 uid = 33 gid = 33 euid = 33 suid = 33 fsuid = 33 egid = 33 sgid = 33 fsgid = 33 tty = (нет) ses = 4294967295 comm = "apache2" exe = "/ usr / sbin / apache2" key = "хозяева-файл"

...