lilalo

view TODO @ 25:ba4d6515b8fd

Выполнен шаг (3) в плане (N05) по построению распределённой системы lilalo.


Агент l3-агент в реальном времени анализирует скрипты в указанном ему
каталоге и по мере обнаружения новых завершённых команд записывает их
в кэш-файл.

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

Агент запускается для каждого пользователя системы.
Если агент обнаружил свою копию работающую от имени того же пользователя,
он автоматически завершается.
Поиск копии агента выполняется так:
просматривается pid-файл агента - если его нет, считается, что и агент не запущен
(Внимание! Не удаляйте pid-файл!! Работа нескольких агентов от имени одного
пользователя может быть некорректной!)
Если он есть, выполняется проверка, действительно ли процесс с таким идентификатором
это l3-агент текущего пользователя. Если нет, pid-файл удаляется, и агент запускается.

Нормальное завершение агента, работающего в режиме демона, выполняется
с помощью сигнала TERM. При завершении агент автоматически стирает свой pid-файл.



Добавлены атрибуты команды, хранящие информацию о участке бинарного файла скрипта,
соответствующей команды:
raw_start - начало блока команды
raw_output_start - начало вывода команды
raw_end - окончание вывода
raw_file - имя бинарного файла

Файлы:
(могут меняться с помощью конфигурационных параметров)

~/.labmaker/.cache.dat
~/.labmaker/cache.xml
~/.labmaker/l3-agent.pid

Конфигурационные параметры:
cache_stat Имя файла с информацией о текущей позиции разбора
в каждом файле

mode Режим, в котором работает агент.
Допустимые значения:
daemon - в режиме непрерывного опроса каталога
Программа не завершается после окончания анализа,
а ждёт появления новых данных
normal - однократный анализ каталога.
Программа завершается после окончания анализа данных

daemon_sleep_interval Интервал через который агент просматривает каталог скриптов
в поисках новых данных

detach Нужно ли выполнять отключение от терминала при работе в режиме демона?
(строго говоря, если процесс не отключился от терминала,
то и в режиме демона он работать не может. Здесь имеется в виду
режим непрерывного опроса каталога)

agent_pidfile Путь к файлу, который будет хранить идентификатор процесса агента.

l3-agent Имя, под которым будет известен процесс l3-agent

Незначительные исправления:
* убрана отладочная информация о new_commands и new_files из frontend'а
author devi
date Thu Nov 03 17:49:56 2005 +0200 (2005-11-03)
parents 868607af758e
children d9a700d48bef
line source
1 TODO LIST
3 lm-report:
5 general: Отметка фрагментов + якоря из командной строки
7 user: Поддержка su и sudo
8 diff: FIX не показывать плавающий бокс
9 фрагменты: отмечать фрагменты для комментирования
10 html: управление деталями
11 html: навести порядок в css
13 web: индекс активности
14 web: централизованный доступ
15 web: периодическое обновление
16 web: информация о лабе
20 lm:
21 ls [[user@]host]
22 list [[user@]host]
23 показывает список ведщихся журналов
24 cat журнал
25 show журнал
26 показывает заданный журнал
28 <журнал> указывается в форме console@host
31 save host
32 сохраняет журналы указанной машины
35 do выполнение команды
36 + стандартный набор команд (в т.ч. инсталляция)
39 --------------------------------------------------------------------------------------
42 Большой неотсортированный список TODO для проекта
46 - FIXME проверить синхронизацию вызова редактора
47 - разделение по дням
49 В начале дня нужно выводить списки
50 команд, файлов и ссылок,
51 имеющих отношение к проведённой работе.
53 Ссылки на дни должны выводиться в оглавление.
54 Неплохо было бы и новые команды маленьким шрифтом.
56 - lm-install указывается тип ОС
57 - табуляция
59 Разбивка по работам
60 - разбивка журнала по работам
61 - название краткое описание работы
62 - файлы/команды/ссылки для каждой работы
63 - связь между методичкой и журналами
65 Статистика
66 - график интенсивности
67 - правильные/неправильные команды
68 - распределение по командам
69 - граф близости команд
71 Фильтрация
72 - фильтрация в браузере по времени и тексту
73 - по результату
74 - по времени
76 Комментирование
77 - комментирование
78 - удаление
79 - связь с wiki
81 Распределённость
82 - единая БД, доступная через инет
83 - поиск в этой базе данных/выборка по критерию
84 - просмотр из кс
85 - удобно использовать вместо history
86 - просмотр/заполнение в реальном времени
87 - идентификация человека/нити/команды
88 - каждая команда - XML-элемент. Элементы передаются на сервер в реальном времени
90 Внешний браузер
91 - звуковая привязка
94 --------------------------------------------------------------------------------------
97 Идеи, как оно может быть сделано
103 --------------------------------------------------------------------------------------
106 DONE
108 xml: поддержка формата xml
109 html: заполлзающие блоки (ИСКЛЮЧЕНО)
110 general: Конфигурация через файл и командную строку