rc script, ktery se musi spustit posledni

Miroslav Lachman 000.fbsd at quip.cz
Wed Nov 26 02:35:08 CET 2014


Dan Lukes wrote on 11/26/2014 00:51:

[...]

> Vsechny se spusti na pozadi. Spousteci sekvence by nemohla pokracovat,
> kdyby se spousteny proces nedaemonizoval a nevratil ji rizeni (si to
> zkus - nastav OpenVPN at se pri svem startu pta na jmeno a heslo k
> tunelu nebo nekteremu certifikatu a uvidis, jak se ti na tom celej boot
> zadre a nedokonci se dokud to nezadas)

No tady jsem to myslel prave tak, ze napriklad MySQL se spousti uplne na 
pozadi a rc script klidne vrati "spusteno" i kdyz vysledkem spousteni 
MySQL je nebezici daemon, zatim co u jinych sluzeb se na urcitou dobu to 
spousteni opravdu zasekne a ceka se. Nevim ted z hlavy, jake presne 
slusby tohle delaji, mozna neco kolem ntpd, sshd, nebo smartd. Uz jsem 
to parkrat pri bootu "ukoncoval" Ctrl+C, kdyz nebyla dostupna sit atp.

> A spis vyjimecne se sluzba daemonizuej uz v plne funkcnim stavu -
> vetsinou je to naopak a po daemon() teprve vykonava rady "pripravnych"
> praci ...

[...]

>> Asi to nakonec udelam klasickym rc scriptem s dlouhym timeoutem pri
>> spusteni.
>
> Nebude osamocen. bgfsck je taky sluzba s odlozenym startem.
>
> Ty ovsem budes muset vyresit jeste drobnosti, kterou bgfsck resit nemusi
> - pripadny manualni (re)start monitoringu, kde odlozeny start spis chtit
> nebudes.

Jinak mas v podstate ve vsem pravdu, takze se vydam tou cestou 
nejmensiho odporu, udelam to jako obycejny rc script se zpozdenym 
spustenim a je to.

> Nastesti, tady se da inspirovat z fsck, ktere taky interne resi, jestli
> je spustenej rucne nebo v ramci bootu:

Mimochodem, ten bgfsck je (pro me) uplne nepochopitelne napsany script, 
ktery vybocuje z normalu na vsechny strany a jako jediny pouziva jine 
jmeno souboru, jine jmeno "sluzby" a jeste ho ma s pomlckou, takze to 
dela problemy v nekterych scriptech s eval (kdysi jsem s tim mel problem 
pri nejakem stourani se v rc scriptech / rcorder, ale ted uz nevim 
presne, je to radu let zpatky)

>> if [ "$autoboot" = yes ]; then

Diky za tip!

Mirek



More information about the Users-l mailing list