Napisany w języku C program ma ułatwiać zarządzanie usługami. Sam demon odpowiada za uruchamianie odpowiednich modułów na żądanie użytkownika. Moduły natomiast, służą do tworzenia plików konfiguracyjnych na podstawie danych z bazy LMS'a oraz restartowania odpowiednich usług na serwerze.
Dlaczego taka nazwa? Większość kodu demona napisał jeden z developerów - Aleksander 'A.L.E.C' Machniak, niemniej należy także podkreślić udział Marcina 'Lexx' Króla. Program zawiera fragmenty kodu autorstwa Mateusza 'mteg' Golicza oraz korzysta z biblioteki iniparser Nicolasa Devillarda. Jeśli Ty masz ochotę napisać jakiś moduł lub poprawić funkcjonalność demona jak najbardziej do tego zachęcam.
A.L.E.C's LMS Daemon potrzebuje:
instalacji interfejsu użytkownika LMS-UI
libmysqlclient (tj. pełnej instalacji MySQL'a lub odpowiedniego pakietu) lub libpq w przypadku bazy PostgreSQL
libdl (to w każdej dzisiejszej dystrybucji jest)
kompilatora języka C
Przed kompilacją należy przy pomocy skryptu ./configure ustalić opcje przedstawione na poniższym listingu (w nawiasach podano wartości domyślne opcji):
--help pomoc --enable-debug0 logowanie zapytań SQL (wyłączone) --enable-debug1 logowanie zdarzeń (wyłączone) --with-sqlite gdy korzystasz z bazy SQLite (wyłączone) --with-pgsql gdy korzystasz z bazy PostgreSQL (wyłączone) --with-mysql gdy korzystasz z bazy MySQL (włączone) --prefix=DIR katalog instalacyjny demona (/usr/local/bin) --libdir=DIR lokalizacja bibliotek bazy danych (/usr/lib) --incdir=DIR lokalizacja plików nagłówkowych bazy danych (/usr/include)Zatem wymagane jest określenie bazy z jakiej będziemy korzystać (-with-mysql lub -with-pgsql) oraz położenia bibliotek dostarczanych wraz z bazą (--incdir, --libdir).
# ./configure --with-pgsql --libdir=/usr/local/pgsql/lib --incdir=/usr/local/pgsql/includeNastępnie kompilacja i instalacja (umieszczenie demona w katalogu określonym zmienną --prefix):
# make && make installNa koniec skompilowane moduły (pliki z rozszerzeniem .so), znajdujące się w katalogu modules/nazwa_modułu przenieś do dowolnego katalogu. Ich lokalizację będziesz określał w pliku konfiguracyjnym.
Przykładowy konfig demona i modułów zawarto w pliku lms.ini.sample. Poniższy listing przedstawia podstawowe opcje dla demona (konfigurację modułów omówiono w osobnych rozdziałach ich dotyczących):
[database] host = localhost # nazwa lub ip hosta, domyślnie: localhost user = lms # nazwa użytkownika, domyślnie: lms password = mypasswd # hasło do bazy, domyślnie: puste database = lms # nazwa bazy, domyślnie: lms port = 0 # numer portu, domyślnie: 0 [lmsd] sleeptime = 30 # określa odstęp czasu (w sekundach) jak często ma # być sprawdzane żądanie reloadu, domyślnie: 30 instances = hosts oident firewall # lista instancji modułów command = 'echo "łączę się z bazą"' # polecenie wykonywane przed każdym połączeniem z bazą
![]() | Lista instancji składa się z nazw instancji oddzielonych spacją. Instancja to nazwa sekcji w pliku konfiguracyjnym. |
W sekcji dotyczącej instancji, oprócz parametrów konfiguracji modułów, umieszcza się opcje podstawowe, jak na poniższym listingu:
[nazwa_instancji] module = /ścieżka/nazwa_modułu.so info = "Opcjonalny opis modułu"
Zmiana opcji 'instances' oraz dowolnej opcji w sekcjach instancji, w odróżnieniu od pozostałych opcji globalnych, nie wymaga restartu demona.
Program możesz uruchamiać jako demona pracującego w tle (opcja '-b'). Wtedy przeładowanie konfiguracji i usług jest dokonywane na żądanie, przy użyciu menu 'Przeładowanie' w LMS-UI. Opcja 'sleeptime' (-s) określa okres między odczytami bazy. Gdy demon wykryje żądanie wykonania reloadu, wywoła moduły określone opcją 'instances' z lms.ini. Na przykład:
# almsd -b
Innym sposobem uruchomienia jest jednorazowy reload w wykorzystaniem crona. Z tego sposobu należy korzystać uruchamiając moduły takie jak 'payments' 'notify', 'traffic', czy 'pinger'. W tym wypadku możesz określić listę instancji do wykonania za pomocą opcji '-i'. Przykładowy wpis do crontab'a wygląda następująco:
1 0 * * * /usr/local/bin/almsd -qi "payments notify"
Poniższy listing przedstawia dostępne opcje linii poleceń programu:
-c ścieżka do pliku konfiguracyjnego (domyślnie: /etc/lms/lms.ini) -i lista instancji (oddzielonych spacją) do przeładowania -b uruchomienie w tle -s czas w sek. między odczytami tabeli 'reload' (domyślnie: 30) -q wykonaj reload i zakończ -h wyświetla opcje linii poleceń
Poprzedni | Spis treści | Następny |
Przykład zastosowania lms-mgc | Moduły |