
    nf	                     8    d dl Z d dlZd dlZ G d d          ZdS )    Nc                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )Pidfilez    Manage 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                 "    || _         d | _        d S N)fnamepid)selfr   s     O/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/gunicorn/pidfile.py__init__zPidfile.__init__   s    
    c                    |                                  }|r4|t          j                    k    rd S d}t          ||| j        fz            || _        t          j                            | j                  }|r1t          j                            |          st          d|z            t          j
        |          \  }}t          j        |d| j        z                      d                     | j        rt          j        || j                   n|| _        t          j        |           t          j        | j        d           d S )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
   createzPidfile.create   s,    	;$$ICsfdj%99::: wtz** 	Qd++ 	QH4OPPP$...	E
ftx'//88999: 	IeTZ((((DJ
 	S!!!!!r   c                 p    |                                   || _        |                     | j                   d S r   )unlinkr   r!   r   )r	   r   s     r
   r   zPidfile.rename.   s0    
DHr   c                    	 t          | j                  5 }t          |                                pd          }ddd           n# 1 swxY w Y   || j        k    rt          j        | j                   dS dS # t          $ r Y dS w xY w)z delete pidfiler   N)openr   intreadr   r   r#   	Exception)r	   fpid1s      r
   r#   zPidfile.unlink3   s    	dj!! *Q16688=q))* * * * * * * * * * * * * * * tx	$*%%%%%   	 	 	DD	s3   A9 $AA9 A

A9 A
'A9 9
BBc                 b   | j         sdS 	 t          | j                   5 }	 t          |                                          }n# t          $ r Y ddd           dS w xY w	 t          j        |d           |cddd           S # t          $ r`}|j        d         t          j
        k    r|cY d}~cddd           S |j        d         t          j        k    rY d}~ddd           dS  d}~ww xY w# 1 swxY w Y   dS # t          $ r'}|j        d         t          j        k    rY d}~dS  d}~ww xY w)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   zPidfile.validate>   s   z 	F	dj!! Qqvvxx==DD!   	       GD!$$$           vayEK//#        vayEK//                   	 	 	vayEL((	s   C= C0!AC0
AC0C= AC0 B6C= 
C-C()C-*C0.C= ;C(C0C= 'C((C--C00C44C= 7C48C= =
D.D)(D))D.N)	__name__
__module____qualname____doc__r   r!   r   r#   r    r   r
   r   r   
   si           " " "2  
	 	 	    r   r   )r0   r   r   r   r:   r   r
   <module>r;      s^   
  				 K K K K K K K K K Kr   