o k˜`Æ ã@sBddlZddlZddlZddlZddlZ  ddd„Zdd„ZdS) éNú /dev/nulléc s̈r«tj ˆ¡‰tj ˆ¡rrtˆdƒ!}zt| ¡ƒ}Wnty,t  dˆ¡YnwWdƒn1s7wYzt  |d¡|sNtj  tj d¡}t  d||f¡Wnt yq}z |jtjkrg‚WYd}~nd}~wwztˆdƒWdƒn1sƒwYWn!tyª}zddlm} t  d| |ƒ¡WYd}~nd}~wwt ¡}|dkr¸t  d¡t d ¡t |¡t ¡t ¡}|dkrÓt  d¡tjtjfD]} |  ¡qÙt |tj¡}t |tjtjB¡}t |tjtjB¡}t |tj ¡¡t |tj ¡¡t |tj ¡¡|||fD]} t  | ¡qˆrdt!j"t!j#fD] } t! !| t$¡q-‡fd d „} t% &| ¡tˆd ƒ}| 'd t (¡¡WdƒdS1s]wYdSdS)zFork a daemon process.Úrbz2Invalid pid in file %s Please remove it to proceedNrz!%s is already running with pid %sza+)Úexception_to_unicodezError writing to pid file: %sú/cstj ˆ¡r t ˆ¡dSdS)N)ÚosÚpathÚexistsÚremove©©Úpidfiler ú2/usr/lib/python3/dist-packages/trac/util/daemon.pyÚremove_pidfileWs ÿz!daemonize..remove_pidfileÚwbs%d))rrÚabspathr ÚopenÚintÚreadÚ ValueErrorÚsysÚexitÚkillÚbasenameÚargvÚOSErrorÚerrnoÚESRCHÚIOErrorÚtrac.util.textrÚforkÚchdirÚumaskÚsetsidÚstdoutÚstderrÚflushÚO_RDONLYÚO_RDWRÚO_APPENDÚdup2ÚstdinÚfilenoÚcloseÚsignalÚSIGTERMÚSIGHUPÚ handle_signalÚatexitÚregisterÚwriteÚgetpid)r Úprognamer+r$r%r"ÚfileobjÚpidÚerÚstreamÚfdÚsignumrr r rÚ daemonizes|     ÿÿ€ý   ÿ€ÿ ÿ€ €þ        $ÿõr=cCs t ¡dS)z.Handle signals sent to the daemonized process.N)rr)r<Úframer r rr1_s r1)NNrrrr)r2rrr.rr=r1r r r rÚs  ÿ J