{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