Upgrade pri behu

Miroslav Lachman 000.fbsd at quip.cz
Thu Sep 3 21:28:55 CEST 2009


DadAN wrote:

>>Po celou tuhle dobu MySQL zustava v provozu i kdyz
>>nema na disku puvodni soubory (respektive ja vim, ze interne tam jsou,
>>dokud je proces neuzavre ;]). Pak jen provedu restart daemona a to uz
>>nabehne nova verze, puvodni soubory na disku se uzavrou a dojde tim k
>>uvolneni mista, ktere do ted zabiraly.
>>Mozna v tom je skryte nejake nebezpeci... ale kde neni?
>>Podobne probiha u me i upgrade Apache, nebo PHP. Nedavno mi dokonce na
>>serveru bezel Apache s PHP asi hodinu a pul bez toho, aby napriklad
>>pkg_info vypsalo jakoukoliv zminku o PHP, protoze jsem ho odinstaloval a
>>pak mel problemy s instalaci noveho baliku. (jednalo se o downgrade)
> 
> 
> Hello,
> Pre tento pripad by bolo mozno vhodne aplikovat hint zo stranky
> http://wiki.freebsd.org/portupgrade ?! hmm
> 
>       portupgrade can stop/start/restart services when you like. Add
> these lines in pkgtools.conf and you'll always have service started
> after an upgrade process:
> 
>   AFTERINSTALL = {
>     '*' => proc { |origin|
>       cmd_start_rc(origin)
>     },
>   }


Ano, tohle jsem v pripade portupgrade pouzival, ale uz jsem od 
portupgrade presel na portmaster a ten tohle nema. Navic ten problem s 
MySQL to tak uplne neresi. Pri upgrade MySQL daemona dojde k jeho 
zastaveni (v pripade, ze je ovladan pres rc.d) a je zastaven nekolik 
"minut" (nez se zastavi, vytvori zalozni binarni balicek, odinstaluje, 
nainstaluje nova verze, vytvori binarni balicek). Pokud mi MySQL bezi 
pres daemontools, nedojde k jejimu zastaveni (u mne pozadovany stav, pro 
nekoho jineho je to spatne). Takze az po uplnem dokonceni upgrade 
provedu restart a ten zabere jen par sekund.

Navic ten prikaz 'start', co se provede jako AFTERINSTALL, neni 
univerzalni. U nekterych daemonu nedochazi k jejich zastaveni pri 
odinstalovani, takze 'start' selze. Je potreba volat 'restart'... jenze 
i ten je nekdy aplikovan spatne - jako stop + start bez cekani na 
skutecne ukonceni, takze jsem take zazil situaci, kdy se ten nasledny 
'start' nepodaril, jelikoz puvodni daemon se teprve ukoncoval a stale 
jeste naslouchal na sitovem portu.
Za timto ucelem jsem si do pkgtools.conf dopsal jeste vlastni metodu 
cmd_real_restart_rc()... ale to uz je uplne jina pohadka :)

Mirek



More information about the Users-l mailing list