
    2Bh	                     0    S SK r S SKrS SKr " S S5      rg)    Nc                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
Pidfile
   zManage a PID file. If a specific name is provided
it and '"%s.oldpid" % name' will be used. Otherwise
we create a temp file using os.mkstemp.
c                     Xl         S U l        g Nfnamepid)selfr	   s     B/var/www/html/env/lib/python3.13/site-packages/gunicorn/pidfile.py__init__Pidfile.__init__   s    
    c                    U R                  5       nU(       a5  U[        R                  " 5       :X  a  g Sn[        X2U R                  4-  5      eXl        [        R                  R                  U R                  5      nU(       a2  [        R                  R                  U5      (       d  [        SU-  5      e[        R                  " US9u  pV[        R                  " USU R
                  -  R                  S5      5        U R                  (       a!  [        R                  " X`R                  5        OX`l        [        R                  " U5        [        R                  " U R                  S5        g )Nz5Already running on PID %s (or pid file '%s' is stale)z'%s doesn't exist. Can't create pidfile.)dirz%s
zutf-8i  )validateosgetpidRuntimeErrorr	   r
   pathdirnameisdirtempfilemkstempwriteencoderenameclosechmod)r   r
   oldpidmsgfdirfdr	   s          r   createPidfile.create   s    $ICsdjj%99:: wwtzz*d++H4OPP$$.	
ftxx'//89::IIeZZ(J
 	S!r   c                 f    U R                  5         Xl        U R                  U R                  5        g r   )unlinkr	   r$   r
   )r   r   s     r   r   Pidfile.rename.   s     
DHHr   c                 *    [        U R                  5       n[        UR                  5       =(       d    S5      nSSS5        WU R                  :X  a!  [
        R                  " U R                  5        gg! , (       d  f       N@= f! [         a     gf = f)zdelete pidfiler   N)openr	   intreadr
   r   r'   	Exception)r   fpid1s      r   r'   Pidfile.unlink3   sm    	djj!Q1668=q) " txx		$**%   "!
  		s'   B #A48B 4
B>B 
BBc                 v   U R                   (       d  g [        U R                   5       n [        UR                  5       5      n [
        R                  " US5        UsSSS5        $ ! [         a     SSS5        gf = f! [         ae  nUR                  S   [        R                  :X  a  Us SnAsSSS5        $ UR                  S   [        R                  :X  a   SnASSS5        ge SnAff = f! , (       d  f       g= f! [         a,  nUR                  S   [        R                  :X  a   SnAge SnAff = f)z,Validate pidfile and make it stale if neededNr   )r	   r*   r+   r,   
ValueErrorr   killOSErrorargserrnoEPERMESRCHENOENT)r   r.   wpides       r   r   Pidfile.validate>   s    zz	djj!Qqvvx=DGGD!$ "! " 	 "!  vvayEKK/# "! vvayEKK/ "!  "!  	vvayELL(	s   D C1A'A?	D '
A<1C12D ;A<<C1?
C.	"C)+C.,C10	D :!C)C1D (C))C..C11
C?;D ?D 
D8!D32D33D8r   N)__name__
__module____qualname____firstlineno____doc__r   r$   r   r'   r   __static_attributes__ r   r   r   r   
   s     "2
	r   r   )r6   r   r   r   rC   r   r   <module>rD      s   
  	 K Kr   