{klogd,syslogd,inne}.init reload i logrotate

Radosław Kintzi pld w vbox.prv.pl
Wto, 16 Kwi 2002, 15:20:29 CEST


On Fri, Apr 12, 2002 at 06:23:42PM +0200, Arkadiusz Miskiewicz wrote:
> Tomasz Kłoczko <kloczek w rudy.mif.pg.gda.pl> writes:
> 
> > Ale najpierw popraciwałbym nieco na sucho. Wtym sensie że 
> > opracowałbym tempalte.init pod kontem tego dokumentu (jest w SOURCES).
> Mała poprawka - jest module rc-scripts. Przy okazji - część naszych
> init skryptów zachowuje się niepoprawnie w przypadku NETWORKING=no
> (w template jest to ok i na tym trzeba się wzorować).


Przygotowałem spis niekompatybilności rc-scriptów z tym co jest w LBS.
Przedstawia się to następująco:

I. Run Levels

Poziom czwarty: Zarezerwowany dla lokalnego użytku, domyślnie tak jak trzeci.
Obecnie jest unused (?).

II. Init Scripts

1. Zwracane wartości:
Jako sukces (zwracane jest 0) powinny być traktowane następujące sytuacje:

 * restartowanie (restart) usługi zamiast przeładowanie (reload) w przypadku
   użycia force-reload
 * wywołanie start przy już działającej usłudze
 * wywołanie stop na zatrzymanym programie
 * wywołanie restart na usłudze nieuruchomionej

Dodatkowo w przypadku opcji reload, gdy usługa jest nieuruchomiona powinno
zostać zwrócone 7 (choć nie wiem czym to się różni od powyższych poza tym,
że reload jest akcją opcjonalną). Można się zastanowić, czy w przypadku 
Networking=no, nie powinno być zwracane 6 (program is not configured).

Tutaj w zasadzie zrobione (poprawiony template.init) (bez tego 6).

2. Środowisko:
Wartości zmiennych PATH, USER, LOGNAME, itp. powinny być niezależne od
środowiska i ustawiane w skryptach na pewne znane, domyślne wartości.

PATH jest ustawiane w /etc/rc.d/init.d/functions, co do innych to nie wiem,
czy jest potrzeba.


3. Wyjście:
Wszystkie komunikaty o błędach powinny być wyprowadzane na standardowe wyjście
diagnostyczne. Komunikaty informujące (status messages) na standardowe wyjście.

Jak to jest (nie chce mi się przez to przedzierać, by sprawdzić)?

4. Komentarze:
Comment conventions for init scripts
     http://www.linuxbase.org/spec/refspecs/LSB_1.1.0/gLSB/initscrcomconv.html
Nie wiem czy warto (mamy przecież chkconfig)?

5. mv /etc/rc.d/init.d/function /lib/lsb/init-function
Powinien zawierać funkcje:
start_daemon [-f] [-n nicelevel] path [args] - uruchamia program jako daemona.
Wcześniej sprawdza, czy program o podanej nazwie jest juz uruchomiony
i jeżeli tak, to nie wykonuje akcji, chyba że podano -f.

killproc basename [signal] - wiadomo, zwrócić uwage na basename!

log_{succes,failure,warning}_msg message - wiadomo co (zwrócić uwagę na
odpowiednie przekierowanie wyjścia).



Co do dwóch ostatnich podpunktów, to według mnie gra nie jest warta
świeczki. No chyba, że koniecznie chcemy być zgodni z LBS.
Mnie najbardziej zależy, by initskrypty zwrazały poprawne wartości
i przygotowałem już pod to template.init (zrobić commit?). Teraz zamierzam
poprawić kilka prawdziwych skryptów a zaraz potem to, co jest wkładane
do /etc/logrotate.d/ (pisałem już dlaczego). Są sprzeciwy?

radek

-- 
mailto:radek w kafeja.ath.cx
gg:2199600



Więcej informacji o liście dyskusyjnej pld-devel-pl