rc-scripts + *.init

Jacek Konieczny jajcus w bnet.pl
Pon, 5 Maj 2003, 09:13:56 CEST


On Sun, May 04, 2003 at 11:26:41PM +0200, Andrzej Krzysztofowicz wrote:
> Witam.
> 
> Czytelnicy commit-listy z SOURCES pewnie zauwazyli, ze wzialem sie za
> porzadki w skryptach startowych. Do zrobienia jest co najmniej:

[...]
> 
> Uwagi ? Komentarze ?

Mnie brakuje jeszcze jakiegoś sensownego odpalania usług, które same
z siebie nie przechodzą w tło, nie odczepiają sie od terminala, albo
nie zmieniają uprawnień. Teraz jest rzeźbienie z "setsid", "su", "&",
a efekt końcowy jest daleki od ideału.

Mógłbym spróbować na potrzeby rc-scripts zrobić programik, powiedzmy
"daemonize", który by:

- zamykał niepotrzebne descryptory
- przechodził w tło (forkował się)
- zmieniał uid i gid na zadane
- odpalał zadany program
- podczepiał jego stdout/stderr do sysloga lub pliku
- pisał pidfile

Można byłoby wybrać które z tych rzeczy ma robić, a które pominąć.
Mógłby uruchamiać program z argv[0], aby jego nazwa zgadzała się z nazwą
uruchamianej obsługi (inaczej zdarzają się dziwne rzeczy).

Przykłady użycia dla pakietu janchor (zobaczcie jak jest teraz):

W %install pakietu (i oczywiście %files)
ln -sf /sbin/daemonize /etc/sysconfig/daemonize/janchor

W janchor.init:
daemon /etc/sysconfig/daemonize/janchor -u jabber

Zabierać się za to?

Pozdrowienia,
	Jacek



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