lilalo

diff lm-install @ 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 37d701f903ec
children 098664cf339c
line diff
     1.1 --- a/lm-install	Thu Jun 16 11:44:38 2005 +0300
     1.2 +++ b/lm-install	Thu Nov 03 17:49:56 2005 +0200
     1.3 @@ -71,15 +71,18 @@
     1.4  	# LabMaker:START
     1.5  	TTY=`tty` 
     1.6  
     1.7 +	uname -a | grep -qi bsd && bsd=yes
     1.8 +
     1.9  	this_term=`w | grep "${TTY##/dev/}" | awk '{print $8;}'`
    1.10  	# freeBSD: 
    1.11 -	this_term=`w | grep "${TTY##/dev/tty}" | awk '{print $6;}'`
    1.12 +	[ -n "$bsd" ] && this_term=`w | grep "${TTY##/dev/tty}" | awk '{print $6;}'`
    1.13 +
    1.14  
    1.15  
    1.16  	LMHOME=~/.labmaker
    1.17  	mkdir -p ${LMHOME}
    1.18  	flush="-f"	#linux
    1.19 -	flush="-t 0"	#freebsd
    1.20 +	[ -n "$bsd" ] && flush="-t 0"	#freebsd
    1.21  	export PS1='\[`	a="$?";
    1.22  		HIDDEN=$([ "$a" = 0 ] || echo -n ^"$a")$(echo -n _${UID}_)$(echo -n _$$_)$(date\
    1.23  			+"%j$(cat ~/.labmaker/lab 2>/dev/null) %H:%M:%S");