www.eprace.edu.pl » selection-check » Realizacja systemu » Dokumentacje programów grupy roboczej

Dokumentacje programów grupy roboczej

Oprogramowanie grupy roboczej składa się z programów rezydujących na serwerze produkcyjnym. Wszystkie z nich działają na systemach z rodziny Linux.

SCrunner.

Sterownik obsługujący układy systemu SC. Sposób w jaki sterownik komunikuje się z układami SC jest opisany w dokumentacjach poszczególnych układów (patrz roz. 4.2.Dokumentacje układów )

        Cykl pracy.

  1. Rozruch programu.

  2. Półki nie zażądano wyłączenia programu lub nie wystąpił błąd krytyczny wykonuj:

    1. Odczekaj czas ustalony w cycle delay.

    2. Dla wszystkich ustalonych układów typu SCslave powtarzaj.

      1. Sprawdź dane na module SCslave.

      2. Jeżeli komunikacja z modułem SCslave przebiegła poprawnie oraz moduł przesłał nowe dane to zaloguj te dane.

      3. Jeżeli przekroczona została maksymalna ilość nieudanych prób komunikacji z modułem SCslave to wyłącz dany moduł i zanotuj błąd.

    3. Sprawdzenie sygnałów od użytkownika lub innych procesów

      1. Jeżeli zażądano transferu to uruchom równolegle do pracy sterownika program SCwl2dir.

      2. Jeżeli zażądano zakończenia pracy systemu to wyjdź z obecnej pętli.

  3. Jeżeli wystąpił błąd krytyczny wysyłaj sygnał awaryjny, aż nie otrzymasz żądania wyłączenia programu.

  4. Uruchom procedurę zakończenia pracy programu.

        Komunikacja ze sterownikiem.

Komunikować się ze sterownikiem można za przy pomocy sygnałów systemowych. Istnieją dwa komunikaty, które można wysłać do sterownika:

        Konfiguracja programu.

Pierwszym etapem konfiguracji programu SCrunner jest określenie wartości zmiennych zawartych w pliku konfiguracyjnym ./scrunner.ini.

Następujące wartości muszą być określone:

Opcjonalne wartości to:

Drugim etapem jest wyedytowanie skryptu Bash exit.sh jeżeli tuż przed zakończeniem pracy programu powinny zostać uruchomione jakieś dodatkowe polecenia. Skrypt ten musi zwracać wartość 0 jeżeli jego wykonanie przebiegło bezproblemowo, w przeciwnym wypadku system zanotuje lekki błąd. Jeżeli przed i/lub po transferze należy wykonać dodatkowe operacja to wtedy należy przygotować skrypty programu SCwl2dir, które są opisane w dokumentacji tego programu (patrz. roz. 4.3.2.SCwl2dir.).

        Pliki i katalogi.

        Opis błędów.

Błędy powstałe podczas pracy sterownika są logowane w plikach typu proclog i pliku ./error.log zgodnie z ich formatami (patrz roz. 4.7.Formaty plików). Kod błędu składa się z dwóch liczb: kod typu błędu oraz kod szczegółowy. Opisy błędów znajdują się w tabeli 4.5.

Typ

Kod

Nazwa - opis

Kod

Opis

0 Startup

Błędu podczas rozruchu programu.

2 Nie można otworzyć pliku ./settings.txt.
4 Nie można otworzyć pliku ./wl.set.
6 Zły format pliku ./settings.ini.
8 Zły format lub błędne dane w wartości w sekcji workstations w pliku ./settings.ini.
10 Nie można utworzyć lub otworzyć pliku typu worklog.
12 Nie można przejąć portu COM.
14 Nie można przechwycić sygnałów systemowych.
1 SCs_nocheck X Układ SCslave o numerze X nie działa poprawnie lub nie jest podłączony.
4 Transfer

Błędy podczas transferu.

1 Podprogram SCwl2dir wywołany z niepoprawną liczbą argumentów.
3 Nie można utworzyć pliku wl.set w katalogu transferowym.
5 Nie można utworzyć kopii pliku ./wl.set o nazwie ./oldwl.set.
7 Nie można otworzyć pliku ./wl.set
11 Nie można utworzyć pliku o nazwie terror w katalogu transferowym.
13 Błąd skryptu pre-transferowego.
15 Błąd skryptu post-transferowego.
17 W katalogu transferowym znajdują się pliki z poprzedniego transferu.
21 Nie można utworzyć nowego procesu dla programu SCwl2dir.
5 Unloged X Nie udało sie X razy zalogować danych pobranych z układów SCsalave.

Tab. 4.5. Kody błędów programu SCrunner.

Są dwie rodzaje błędów:

SCwl2dir.

Podprogramu sterownika SCrunner odpowiedzialny za transfer danych do katalogu transferowego. Opis zawartość katalogu transferowego znajduje się w rozdziale 4.7.5.Katalog transferowy.

        Argumenty i zwracane wartości.

Program przyjmuje jeden argument w postaci ścieżki do katalogu transferowego. Program zwraca wartości 0 jeżeli transfer zakończył się sukcesem lub kod szczegółowy błędu typu Transfer jeżeli wystąpił błąd podczas transferu (patrz. roz. 4.3.1.SCrunner.).

        Procedura transferu.

  1. Uruchom skrypt pre-transferowy ./pre-trans.sh.

  2. Sprawdź czy katalog transferowy nie zawiera plików po poprzednim transferze. Jeśli są przerwij transfer.

  3. Utwórz pusty plik o nazwie terror w katalogu transferowym.

  4. Stwórz katalog worklogs w katalogu transferowym.

  5. Zmień nazwę pliku wl.set w katalogu programu na oldwl.set.

  6. Dla wszystkich dat zawartych w pliku oldwl.set powtarzaj:

    1. Skopiuj plik worklog odpowiadający danej dacie z katalog_programu/worklogs/ do katalog_transferowy/worklogs/. Jeżeli kopiowanie nie powiedzie się to zapisz daną datę oraz pozostałe daty z pliku oldwl.set do pliku wl.set w katalogu programu i wyjdź z obecnej pętli.

    2. Utwórz plik utwórz plik sumy kontrolnej MD5 dla pliku worklog odpowiadający danej dacie z katalog_programu/worklogs/ w katalog_transferowy/worklogs/.

    3. Zapisz daną datę do pliku wl.set w katalogu transferowym.

  7. Przenieś plik error.log z katalogu programu do katalogu transferowego.

  8. Jeżeli nie wystąpił błąd podczas transferu to usuń plik terror z katalogu transferowego.

  9. Uruchom skrypt post-transferowy ./post-trans.sh.

        Konfiguracja programu.

Program SCwl2dir wymaga konfiguracji tylko jeżeli przed i/lub po transferze należy dokonać jakieś dodatkowe operacji. Takimi dodatkowymi operacjami mogą być na przykład zamontowanie pendrive'a, na którym znajduje się katalog transferowy i jego odmontowanie po zakończeniu transferu. Dostępne są to tego celu dwa skrypty Bash:

Skrypty muszą zwracać wartość 0 jeżeli ich wykonanie przebiegło bezproblemowo, w przeciwnym wypadku system zanotuje lekki błąd.

        Pliki i katalogi.

SCrunner_tui.

Program SCrunner_tui jest opartym o ncurses tekstowym front-end'em dla sterownika SCrunner. Dzięki SCrunner_tui można w wygodny sposób śledzić prace sterownika oraz wysłać do niego komunikat żądający transferu danych lub wyłączenia systemu. Jeżeli zostanie w niego wkompilowana biblioteka libscanalis z bibliotek systemu SC to program SCrunner_tui będzie wstanie także przedstawiać w locie wyniki analizy danych pobranych z modułów SCslave. Jest to szczególnie przydatna opcja jeżeli prototypujemy nowy mechanizm analizy danych, który będzie zastosowany w grupie zarządzającej systemu SC.

Obsługa programu.

Program SCrunner_tui przyjmuje jeden argument w postaci ścieżki do pliku lub pipeline'a z wyjściem programu SCrunner. Przykładowe uruchomienie może wyglądać następująco:

> mkfifo scr_pipe

> ./scrunner > scr_pipe

> ./scrunner_tui scr_pipe

Poniższy rysunek 4.6 przedstawia z zrzut ekrany programu SCrunner_tui.

Rys. 4.6. SCrunner_tui podczas pracy.

W tabelce „Scores” przedstawiane są wyniki analizy danych z poszczególnych modułów SCslave. W kolumnie SCs znajduje się identyfikator modułu. Pozostałe kolumny określają ile razy dane z danego modułu SCslave uzyskały wynik z z nagłówka kolumny. W rubryce „Proclog” pokazywane jest standardowe wyjście programu SCrunner. Program SCrunner_tui obsługuje się przy pomocy klawiatury w następujący sposób:



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.