Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: собрать статистику запускаемых программ  (Прочитано 14068 раз)
0 Пользователей и 10 Гостей смотрят эту тему.
Romiras
Гость
« : 29-08-2006 21:40 » 

Приветсвую всех!

У меня есть к вам такой вопрос: нужно собрать статистику запускаемых из Меню Гнома/KDE программ, включая время запуска и категорию, к которой они относятся (Графика, Утилиты и т.д.). Как это сделать? Изменять код Gnome-Panel? Писать модуль?
При этом я не хочу вносить какие-либо изменения в меню (скрипты, как мне предлагали раньше), а сделать это другим способом (средствами системы), можно и программно.
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 30-08-2006 05:13 » 

хм, интересный вопрос.
Насколько я знаю в последних версия ядра есть средства для мониторинга файловой системы(создание/удаление/запуск) и даже есть какой-то локальный поисковик использующий новые апи для слежения за папками, с целью обновления метаданных о файле сразу после того, как он изменился.
но сейчас не вспомню, как и что там называлось, если не забуду посмотрю дома, в одном из давнешних выпусков LinuxFormat была статься про новое в ядре 2.6.x
Записан

Странно всё это....
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 30-08-2006 05:31 » 

Системный вызов exec никак не связан с обращением к элементам меню Gnome - SELinux тут не поможет - в системе запускается масса программ.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #3 : 30-08-2006 06:02 » 

RXL, я не имел ввиду SELinux, я имел ввиду апи ядра которым можно сказать "информируй меня пожалуйсто, если вдруг будут обращения к указанному каталогу/файлу и т.д."
Записан

Странно всё это....
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 30-08-2006 07:46 » 

Я видел такую утилитку, называется time - она собирает статистику по выполняемому процессу.

Самый муторный способ решить вопрос: каждое интересующее приложение переименовать и написать скриптовую обёртку со старым названием приложения, которая запускает приложение под time, а статистику куда-нибудь сохраняет. Улыбаюсь

P.S. Паттерн проектирования wrapper Отлично.
« Последнее редактирование: 30-08-2006 07:47 от dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #5 : 30-08-2006 07:56 » 

P.S. Паттерн проектирования wrapper Отлично.

Главное не применять паттерн "посыльный" Улыбаюсь
Записан

Странно всё это....
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 30-08-2006 13:08 » 

Слежение за директорией, если мне не изменяет память, было еще 2.2. Автомантер следит же за обращением к своим директориям.

Мне кажется, мы изобретаем велосипед и нужно просто напрячься и поискать - наверняка решение уже есть. Конечно, нужно искать не по "gnome", а про учет запускаемых программ.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #7 : 30-08-2006 14:04 » 

RXL, в 2.2? сомневаюсь. не примомню что бы автомонтёр следил за директориями, скорее за устройствами
Записан

Странно всё это....
Romiras
Гость
« Ответ #8 : 30-08-2006 14:47 » 

Пока, увы, не увидел подходящих вариантов Жаль  Мне нужно собирать статистику не всех, а только через меню!
RXL, подскажи пример для поиска.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 30-08-2006 23:00 » 

Давай рассуждать!

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

Если найти подходящий инструмент для логирования запускаемых программ, то не сложно будет отфильтровать нужные. Конечно, это никак не покажет, запускались ли они из меню Gnome, или каким-либо другим путем.

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

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #10 : 31-08-2006 04:39 » new

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
Записан

Странно всё это....
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines