mò .á¸Ec@sþdZddd!ZdkZdkZdkZdkZeidƒZeidjoDydk l Z Wq§e j o dZ ei e ƒdZ q§Xndk l Z d „Zd „Zd „Zd fd „ƒYZdfd„ƒYZd„Zd„ZdS(s~ Zope signal handlers for clean shutdown, restart and log rotation. $Id: Signals.py 40218 2005-11-18 14:39:19Z andreasjung $ s$Revision: 1.3 $i iþÿÿÿNtZ2tnt(s SignalHandlersyCan not install signal handlers. Please install (or upgrade) your pywin32 installation (https://sf.net/projects/pywin32)cCs$tidƒtidddƒdS(snShutdown cleanly on SIGTERM. This is registered first, so it should be called after all other handlers.sShutting down fastitfastiN(tloggertinfotLifetimetshutdown(((t./data/zmath/zope/lib/python/Signals/Signals.pytshutdownFastHandler's cCstidƒtidƒdS(smShutdown cleanly on SIGINT. This is registered first, so it should be called after all other handlers.s Shutting downiN(RRtsystexit(((RtshutdownHandler.s cCstidƒtidƒdS(ssRestart cleanly on SIGHUP. This is registered first, so it should be called after all other SIGHUP handlers.t RestartingiN(RRRR(((RtrestartHandler4s tLogfileReopenHandlercBs tZdZd„Zd„ZRS(s}Reopen log files on SIGUSR2. This is registered first, so it should be called after all other SIGUSR2 handlers. cCs9g}|D]}|dj o ||q q ~|_dS(N(t_[1]tloggerstlogtNonetself(RRRR((Rt__init__@scCs/x|iD]}|iƒq WtidƒdS(NsLog files reopened successfully(RRRtreopenRR(RR((Rt__call__Cs (t__name__t __module__t__doc__RR(((RR:s  tLogfileRotateHandlercBs tZdZd„Zd„ZRS(s—Rotate log files on SIGUSR2. Only called on Windows. This is registered first, so it should be called after all other SIGUSR2 handlers.cCs9g}|D]}|dj o ||q q ~|_dS(N(RRRRR(RRRR((RRNscCs}tidƒx\|iD]Q}xH|iD]=}|ƒ}t|dƒot |i ƒo|i ƒq'q'WqWti dƒdS(NsLog files rotation starting...trotatesLog files rotation complete( RtdebugRRRthandler_factoriestfthandlerthasattrtcallableRR(RRRR((RRQs     (RRRRR(((RRJs  cCsYtidƒdk}y(|id}|iƒtidƒWntidƒnXdS(sj Packs the main database. Not safe to call under a signal handler, because it blocks the main thread sPacking main ZODB databaseNis3Database packing launched or completed successfullysCall to pack failed!(RRtGlobalstopenedtdbtpackt exception(R"R$((Rt packHandlerZs    cCsÛdkl}l}ydkl}l}l}Wn%tj od}d}d}nXtpdSnti|t ƒti|t ƒt i djo*ti|t ƒti|t|ƒƒnti|t|ƒƒdS(N(sSIGTERMsSIGINT(sSIGHUPsSIGUSR1sSIGUSR2ii i R(tsignaltSIGTERMtSIGINTtSIGHUPtSIGUSR1tSIGUSR2t ImportErrort SignalHandlertregisterHandlerRR tostnameR RRR(RR+R-R,R*R)((RtregisterZopeSignalsgs (Rt __version__tloggingR R1Rt getLoggerRR2tWinSignalHandlerR/R.tmsgtwarningRRR R RRR'R3(R RR5R'R R RR/RR8RRR4R1R3((Rt?s(