a
    /e-                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	Z	dZ
dZg Zdd Zddejdd	d
Zdd Ze e dS )    N)PIPE)Popeni      c                 G   sV   t d\}}t jt| g|R d|idd  | }t| |  |  |S )z
    Starts a fully independent subprocess (with no parent)
    :param executable: executable
    :param args: arguments to the executable, eg: ['--param1_key=param1_val', '-vvv' ...]
    :return: pid of the grandchild process
    FwriterT)targetargskwargsdaemon)	multiprocessingPipeProcess_start_detachedstartrecv
REGISTEREDappendclose)
executabler   readerr   pid r   [/var/www/html/efn/efnconsultor/selenium/selenium-4.34.2/undetected_chromedriver/dprocess.pystart_detached   s    	


r   )r   c                G   s~   i }t  dkr"|jttB d n&tjdk r<|jtjd n|jdd t	| g|ft
t
t
d|}||j t  d S )NWindows)creationflags)      )
preexec_fnT)start_new_session)stdinstdoutstderr)platformsystemupdateDETACHED_PROCESSCREATE_NEW_PROCESS_GROUPsysversion_infoossetsidr   r   sendr   exit)r   r   r   r   pr   r   r   r   .   s    
r   c                  C   sB   t D ]8} z&ttd|   t| tj W q   Y q0 qd S )Nzcleaning up pid %d )	r   logging	getLogger__name__debugr)   killsignalSIGTERM)r   r   r   r   _cleanupA   s    r5   )atexitr.   r
   r)   r"   r3   
subprocessr   r   r'   r&   r%   r   r   r   r   r5   registerr   r   r   r   <module>   s   	