Romiras
Гость
|
|
« : 29-08-2006 21:40 » |
|
Приветсвую всех!
У меня есть к вам такой вопрос: нужно собрать статистику запускаемых из Меню Гнома/KDE программ, включая время запуска и категорию, к которой они относятся (Графика, Утилиты и т.д.). Как это сделать? Изменять код Gnome-Panel? Писать модуль? При этом я не хочу вносить какие-либо изменения в меню (скрипты, как мне предлагали раньше), а сделать это другим способом (средствами системы), можно и программно.
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #1 : 30-08-2006 05:13 » |
|
хм, интересный вопрос. Насколько я знаю в последних версия ядра есть средства для мониторинга файловой системы(создание/удаление/запуск) и даже есть какой-то локальный поисковик использующий новые апи для слежения за папками, с целью обновления метаданных о файле сразу после того, как он изменился. но сейчас не вспомню, как и что там называлось, если не забуду посмотрю дома, в одном из давнешних выпусков LinuxFormat была статься про новое в ядре 2.6.x
|
|
|
Записан
|
Странно всё это....
|
|
|
RXL
|
|
« Ответ #2 : 30-08-2006 05:31 » |
|
Системный вызов exec никак не связан с обращением к элементам меню Gnome - SELinux тут не поможет - в системе запускается масса программ.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Антон (LogRus)
|
|
« Ответ #3 : 30-08-2006 06:02 » |
|
RXL, я не имел ввиду SELinux, я имел ввиду апи ядра которым можно сказать "информируй меня пожалуйсто, если вдруг будут обращения к указанному каталогу/файлу и т.д."
|
|
|
Записан
|
Странно всё это....
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #4 : 30-08-2006 07:46 » |
|
Я видел такую утилитку, называется time - она собирает статистику по выполняемому процессу. Самый муторный способ решить вопрос: каждое интересующее приложение переименовать и написать скриптовую обёртку со старым названием приложения, которая запускает приложение под time, а статистику куда-нибудь сохраняет. P.S. Паттерн проектирования wrapper .
|
|
« Последнее редактирование: 30-08-2006 07:47 от dimka »
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Антон (LogRus)
|
|
« Ответ #5 : 30-08-2006 07:56 » |
|
P.S. Паттерн проектирования wrapper . Главное не применять паттерн "посыльный"
|
|
|
Записан
|
Странно всё это....
|
|
|
RXL
|
|
« Ответ #6 : 30-08-2006 13:08 » |
|
Слежение за директорией, если мне не изменяет память, было еще 2.2. Автомантер следит же за обращением к своим директориям.
Мне кажется, мы изобретаем велосипед и нужно просто напрячься и поискать - наверняка решение уже есть. Конечно, нужно искать не по "gnome", а про учет запускаемых программ.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Антон (LogRus)
|
|
« Ответ #7 : 30-08-2006 14:04 » |
|
RXL, в 2.2? сомневаюсь. не примомню что бы автомонтёр следил за директориями, скорее за устройствами
|
|
|
Записан
|
Странно всё это....
|
|
|
Romiras
Гость
|
|
« Ответ #8 : 30-08-2006 14:47 » |
|
Пока, увы, не увидел подходящих вариантов Мне нужно собирать статистику не всех, а только через меню! RXL, подскажи пример для поиска.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #9 : 30-08-2006 23:00 » |
|
Давай рассуждать!
Меню Gnome хранится в одном и нескольких файлах (не знаю точно - Gnome не пользовался) - не важно сколько. Важно другое - что эти файлы, наверняка (быстрее всего), не исполняемые, а просто содержат описания и пути к программам. Т.е. сказать зачем было обращение к файлу - для запуска программы или просто для обновления меню - нельзя.
Если найти подходящий инструмент для логирования запускаемых программ, то не сложно будет отфильтровать нужные. Конечно, это никак не покажет, запускались ли они из меню Gnome, или каким-либо другим путем.
Если же внедриться в код этой меню, то можно точно быть уверенным в результате.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Антон (LogRus)
|
|
« Ответ #10 : 31-08-2006 04:39 » |
|
RXL, поддерживаю что касается средств(как обещал посмотрел дома), то с ядра версии 2.6.14 появился интрефейс Inotify добавляет 3 системных вызова inotify_init inotify_add_watch inotify_rm_watch суть такая ты говоришь ядру за каким файлом следить и какие события ловить, а едро тебя информирует при появлении события события такие: IN_ACCESS - к файлу был доступ IN_MODIFY IN_ATTRIB IN_CLOSE_WRITE IN_CLOSE_NOWRITE IN_OPEN IN_MOVED_FROM IN_MOVED_TO IN_CREATE IN_DELETE IN_DELETE_SELF IN_ALL_EVENTS может еще какие-то прочитать о том как пользоваться можуно в журнале LinuxFormat за декабрь 2005 #4(73) в качестве примера можно посмотреть inotify-utils вот тут: www.kernel.org/pub/linux/kernel/people/rml/inotify/utilsили утилиту beagle
|
|
|
Записан
|
Странно всё это....
|
|
|
|