как получить уведомление о выполнении программы в linux - PullRequest
0 голосов
/ 30 марта 2012

Существует программа inotifywait от inotify-tools, которая помогает обнаруживать создание, изменение, открытие и т. Д. Просматриваемых файлов или каталогов, но не существует «выполненных» событие.Я также попробовал утилиту filesloaded , но кажется, что, хотя «созданные» и «модифицированные» события работают, «выполненные» - нет.Есть ли способ получать уведомления о выполнении выбранных программ или программ в выбранном каталоге?

Моя проблема заключается в том, что, хотя я могу отслеживать "выполненное" действие в двоичных файлах с событием inotify "OPEN", мне нужно вычислить контрольную суммуиз этого двоичного файла, так что это будет еще одно действие "ОТКРЫТЬ", и это приводит меня к бесконечной рекурсии.Конечно, я могу использовать inotifywait в цикле и каждый раз получать одно действие, а не использовать режим монитора, но тогда есть вероятность, что некоторые события будут пропущены.

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Насколько я знаю, в inotify нет события, чтобы делать то, что вы хотите именно.Я не уверен, что это выполнимо для вашей ситуации, но вы могли бы попытаться избежать проблемы рекурсии с «open», используя опцию IN_ONESHOT, затем вычислить свою контрольную сумму и повторно вызвать inotify для двоичного файла, который ее вызвалв том же сценарии.

0 голосов
/ 20 сентября 2017

Если вы можете установить sysdig , вы можете отслеживать выполнение на основе имени команды:

sudo sysdig "proc.name=foobar and evt.type=execve"
...