| 
			| 
					
						| 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 |  
						| 
								|  |  
								|  |  Записан | 
 
 Странно всё это.... |  |  | 
	|  |