rc skripty, was: startovanie amavisu

Petr Rehor prehor at gmail.com
Tue Jul 19 19:06:12 CEST 2005


On 7/19/05, Stefan Kremen <piftik at yhman.tnuni.sk> wrote:
...
> Moja otazka teda znie: To, ze pri starte pocitaca ignoruje amavisd_flags="" v
> /etc/rc.conf a pri spustani rc skriptu zo shellu ho neignoruje, je vlastnost
> alebo chyba (systemu alebo portu)?

To je v tuto chvili vlastnost rc.d skriptu ktere si porty davaji primo
do /etc/rc.d a ktere si nastavuji defaultni hodnoty primo v sobe.

Kdyz se startuje skript pri bootu, tak /etc/rc spusti postupne vsechny
skripty v /etc/rc.d. Jako jeden z prvnich spusti /etc/rc.d/rcconf.sh a
to jeste tak, ze ne v separatnim shellu, ale v shellu toho rc, takze
si natahne vsechny hodnoty z rc.conf do pameti.

Kdyz rc.d skript z rc.d zavola funkci load_rc_config $name, ta si
napred zjisti jestli je uz rc.conf v pameti a pokud ne, tak ho
natahne. Pri bootu ho uz znovu nenatahne.

Rozdil pro nastavovani promennych v rc.d skriptech je pak ten, ze pri
bootovani systemu se napred nastavi promenne na stav v rc.conf a potom
se prepisi tim co je v samotnem rc.d skriptu ( v tomto pripade
amavisd_flags=${amavisd_flags:-"-u vscan"} zjisti ze amavisd_flags je
z rc.conf prazdne a tak mu nastavi defaultni hodnotu) zatimco pri
rucnim spusteni se napred nastavi defaultni promenna v rc.d skriptu a
pak se pri nacteni rc.conf vynuluje.

Castecnym resenim by bylo dat nastaveni defaultnich hodnot v rc.d
skriptu az za volani load_rc_config, pak by se to v obou pripadech
chovalo stejne spatne (v rc.conf by nesla vynulovat defaultni promenna
ani v jednom pripade).

O neco lepsi vysledek by melo v rc.conf priradit do amavisd_flags
mezeru, aby to pro shell nebyla prazdna promenna a pro amavis to nebyl
parametr. Pak by to melo zacit fungovat.

A uplne spravne to zafunguje presunem konfigurace pro amavisd z
/etc/rc.conf do souboru /etc/rc.conf.d/amavisd ktery se necachuje a
tudiz se natahne vzdy (viz funkce load_rc_conf v /etc/rc.subr).

Docela by me zajimalo, jak to s rc.d skripty pro porty nakonec
dopadne. Pred delsi dobou se do /usr/ports/Mk/bsd.port.mk doplnila
automatizace instalace rc.d skriptu do /etc/rc.d (viz target
apply-slist) a nektere porty to zvolna zacaly pouzivat (z tech
znamejsich treba mysql-server, cyrus-imapd, asterisk). Minuly mesic se
opet debata na toto tema rozhorela v ports@ a rc@ tak uvidime jestli
se neco zmeni k lepsimu.

P.




More information about the Users-l mailing list