fjdZddlZddlmZddlmZddlmZddl m Z ddl m Z m Z mZmZdZd ed efd Zd ed eefd Zdee jfd eded dfdZdS)z4 This module contains X Ray Agent main run function N)Optional)gettext)Agent) constants)configure_logging create_socket write_sys_id read_sys_idz/var/run/xray-agent.pidpidpidfilect|d5}|t|ddddS#1swxYwYdS)zB Save agent process pid to file that other tools can use. wN)openwritestr)r r fs S/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/console_utils/run_agent.py _save_pidrs gs  q Cs#AAAreturnc( t|d5}t|}dddn #1swxYwYn#ttt f$rYdSwxYw t j|dn#t$rYdSwxYw|S)Nrr) rintreadOSErrorIOError ValueErroroskillProcessLookupError)r rr s r _read_pidr #s '3   1affhh--C               Wj )tt  Q tt JsEA "A A AA AA A'&A'+B BBsystem_id_cache_filect|r+ttdtdt t j|tt}t|j |ttj |tt j5}||dddddS#1swxYwYdS) z Main run function zBAnother daemon instance is already running, please, stop it first.N) system_id)agent_system_id_path)r r T)background_routine)r print_exitrr agent_logrr r sys_idrrgetpidr agent_sockstart)agentr r!sockets rrunr14s  aTUUVVV Qi)*** } ...4HIIII ")++w//// y+ , ,5 Ft 444555555555555555555sC((C,/C,)__doc__rtypingrxrayrr(xray.agent.daemonr xray.internalrxray.internal.utilsrrr r PIDFILErrrr agent_filer1rr<s6 ############ $3sx}"$-$8555!5=A555555r;