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