HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //opt/osm/venv/lib/python3.10/site-packages/psutil/__pycache__/_psbsd.cpython-310.pyc
o

=i!x�@s�dZddlZddlZddlZddlZddlmZddlmZddlm	Z	ddl
mZddl
mZdd	l
m
Zdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZgZer�ejejejejej ej!ej"ej#ej$ej%ej&ej'ej(ej)iZ*n=er�ejejej ej!ej"ej#ej+ej%ej$ej%ejej,ej-ejiZ*ner�ejejej ej!ej"ej#ej$ej%ejej,ej-ejiZ*ej.ej/ej0ej1ej2ej3ej4ej5ej6ej7ej8ej9ej:ej;ej<ej=ej>ej?ej@ejAejBejCejDejEiZFe�G�ZHejIZIeJed�ZKeLd�idd�dd�dd�dd�dd�dd �d!d"�d#d$�d%d&�d'd(�d)d*�d+d,�d-d.�d/d0�d1d2�d3d4�d5d6�d7d8�d9d:�d;d<�d=d>�d?d@�dAdB�dCdD�dEdF��ZMedGgdH��ZNedIgdJ��ZOedKgdL��ZPePZQedMgdN��ZRedOdP�ZSedQdR�ZTe�r�edSgdT��ZUnedSgdU��ZUdVdW�ZVdXdY�ZWdZd[�ZXd\d]�ZYd^d_�ZZe�s�e�r�d`da�Z[ndbda�Z[dcdd�Z\e�r�dedf�Z]ne�r�dgdf�Z]d�didj�Z^ej_Z_ej`Z`ejaZaejbZbdkdl�Zcdmdn�Zde�rdodp�Zedqdr�Zfdsdt�Zge�r-zeg�ZhWnei�y(Zjzeduej���dZhWYdZj[jndZj[jwwdvdw�Zkdxdy�Zledzd{��Zmd|d}�Zne�rCd~d�Zone�rKd�d�ZonejoZod�d��Zpd�d��Zqejrd�d���ZsGd�d��d��ZtdS)�z5FreeBSD, OpenBSD and NetBSD platforms implementation.�N)�defaultdict)�
namedtuple)�ElementTree�)�_common)�_psposix)�_psutil_bsd)�FREEBSD)�NETBSD)�OPENBSD)�AccessDenied)�
NoSuchProcess)�
ZombieProcess)�	conn_tmap)�conn_to_ntuple)�debug)�memoize)�memoize_when_activated)�
usage_percent�proc_num_threads�ppid�status�real_uid��
effective_uid��	saved_uid��real_gid��
effective_gid��	saved_gid��ttynr��create_time�	�ctx_switches_vol�
�ctx_switches_unvol��
read_io_count��write_io_count�
�	user_time��sys_time��ch_user_time��ch_sys_time��rss��vms��memtext��memdata��memstack��cpunum��name��svmem)�total�	available�percent�used�free�active�inactive�buffers�cached�shared�wired�	scputimes��user�nice�system�idle�irq�pmem)r8r:�text�data�stack�	pcputimes)rTrV�
children_user�children_system�
pmmap_grouped�*path rss, private, ref_count, shadow_count�	pmmap_ext�6addr, perms path rss, private, ref_count, shadow_count�sdiskio)�
read_count�write_count�
read_bytes�write_bytesZ	read_timeZ
write_timeZ	busy_time)rerfrgrhcCs�t��}trP|\}}}}}}tdd��,}|D]!}|�d�r(t|��d�d}	q|�d�r7t|��d�d}
qWd�n1sBwY||}||}n|\}}}}}}}	}
|||}|||}t|||dd�}
t|||
|||||	||
|�S)Nz
/proc/meminfo�rbsBuffers:ris
MemShared:�Zround_)	�cextZvirtual_memr
�open�
startswith�int�splitrrF)ZmemrGrKrLrMrQrO�f�linerNrPrJZavailrI�rr�;/opt/osm/venv/lib/python3.10/site-packages/psutil/_psbsd.py�virtual_memory�s>

���
�rtcCs4t��\}}}}}t||dd�}t�||||||�S)z@System swap memory as (total, used, free, sin, sout) namedtuple.rrj)rkZswap_memrrZsswap)rGrJrK�sinZsoutrIrrrrrs�swap_memory�srvcCs"t��\}}}}}t|||||�S)z,Return system per-CPU times as a namedtuple.)rk�	cpu_timesrRrSrrrrrsrw�srwcCs>g}t��D]}|\}}}}}t|||||�}|�|�q|S)z(Return system CPU times as a namedtuple.)rk�
per_cpu_timesrR�append)�retZcpu_trTrUrVrWrX�itemrrrrrsrx�srxcC�t��S)z0Return the number of logical CPUs in the system.)rk�cpu_count_logicalrrrrrrrsr}��r}cCst�dkrdSdS)Nr)r}rrrrrrrs�cpu_count_cores��rcCs�d}t��}|dur5|�d�}|dkr5|d|d�}t�|�}zt|�d��p)d}W|��n|��w|s>t�dkr>dS|S)z-Return the number of CPU cores in the system.Nz	</groups>���r'zgroup/children/group/cpur)	rkZcpu_topology�rfindrZ
fromstring�len�findall�clearr})rz�s�index�rootrrrrrsrs


c	Cs�trt��\}}}}}nBtrAt��\}}}}}}}tdd��}|D]}|�d�r0t|��d�}q!Wd�n1s;wYn
trNt��\}}}}}}}t	�
||||�S)z*Return various CPU stats as a named tuple.z
/proc/statrisintrrN)r	rk�	cpu_statsr
rlrmrnrorrZ	scpustats)	ZctxswZintrsZ
soft_intrsZsyscallsZ_trapsZ_faultsZ_forksrprqrrrrrsr� s"�
�����r�c
Cs�g}t�}t|�D]]}z	t�|�\}}Wn	tyYq	w|r\zt|�d�d�d�d�}Wn
ttfy=d}Ynwzt|�d�d�d�d�}Wn
ttfy[d}Ynw|�	t
�|||��q	|S)z�Return frequency metrics for CPUs. As of Dec 2018 only
        CPU 0 appears to be supported by FreeBSD and all other cores
        match the frequency of CPU 0.
        � r��/rN)r}�rangerk�cpu_freq�NotImplementedErrorrnro�
IndexError�
ValueErrorryr�scpufreq)rz�num_cpus�cpu�currentZavailable_freqZmin_freqZmax_freqrrrrrsr�Bs*� � �r�cCstt���}t�|dd�gS)Ng)�floatrkr�rr�)�currrrrrrsr�\sFc	Cs@g}t��}|D]}|\}}}}t�||||�}|�|�q|S)z�Return mounted disk partitions as a list of namedtuples.
    'all' argument is ignored, see:
    https://github.com/giampaolo/psutil/issues/906.
    )rk�disk_partitionsrZ	sdiskpartry)	�all�retlistZ
partitions�	partitionZdeviceZ
mountpointZfstype�opts�ntuplerrrrrsr�fsr�c
Cs�t���}i}|D]M}zt�|�}t�|�}t�|�\}}Wnty7}z
|jtjkr-�WYd}~q	d}~wwt	t
d�rBt
�|�}d�|�}d|v}	t
�
|	||||�||<q	|S)z)Get NIC stats (isup, duplex, speed, mtu).N�	NicDuplex�,�running)�net_io_counters�keysrkZ
net_if_mtuZnet_if_flagsZnet_if_duplex_speed�OSError�errnoZENODEV�hasattrrr��joinZ	snicstats)
�namesrzrDZmtu�flagsZduplex�speed�errZoutput_flagsZisuprrrrrs�net_if_stats�s*


���




�r�c
Cs�t|\}}t�}trt�d||�}ntrt�d|�}nt�||�}|D]}|\}}}}	}
}}t||||	|
|t|�}
|�|
�q$t	|�S)z System-wide network connections.r�)
r�setrrk�net_connectionsr
r�TCP_STATUSES�add�list)�kind�families�typesrz�rawlistr{�fd�fam�type�laddr�raddrr�pid�ntrrrrrsr��s�r�cCsbz	t��\}}}Wn
tyYdSw|dk}|rtj}n|dkr&tj}n|d}t�|||�S)zReturn battery info.Nrr��<)rk�sensors_batteryr�rZPOWER_TIME_UNLIMITEDZPOWER_TIME_UNKNOWNZsbattery)rIZminsleftZ
power_pluggedZsecsleftrrrrrsr��s�r�c	Csttt�}t�}t|�D],}z!t�|�\}}|dkrd}d|��}|d�t�||||��Wqt	y7Yqw|S)z?Return CPU cores temperatures if available, else an empty dict.rNzCore Zcoretemp)
rr�r}r�rkZsensors_cpu_temperatureryrZshwtempr�)rzr�r�r��highrDrrrrrs�sensors_temperatures�s
��r�cCr|)z:The system boot time expressed in seconds since the epoch.)rk�	boot_timerrrrrrrsr��r~r�zignoring exception on import: cCsNtdkr|Stt�}|dkst|�dkr|Std�|dkr#||S||S)z!Account for system clock updates.rrz9system clock was updated; adjusting process create_time())�INIT_BOOT_TIMEr��absr)�ctime�diffrrrrrs�adjust_proc_create_time�s
r�c	CsRg}t��}|D]}|\}}}}}|dkrqt�||pd|||�}|�|�q|S)z:Return currently connected users as a list of namedtuples.�~N)rk�usersrZsuserry)	r�r�r{rT�tty�hostnameZtstampr�r�rrrrrsr��sr�cCs:z	td���WdStyYdStyYdSw)NrFT)�ProcessrDr
rrrrrrrrs�
_pid_0_existss��r�cCs*t��}trd|vrt�r|�dd�|S)z7Returns a list of PIDs currently running on the system.r)rk�pidsrr��insert)rzrrrrrsr�sr�cCst�|�}|s|t�vSdS)NT�r�
pid_existsr��r��existsrrrrrsr�#s

r�cCst�|�}|s	dS|t�vS)NFr�r�rrrrrsr�.s

cCs:zt�|�td}t�|�tjkWStyYdSw)NrF)rk�proc_oneshot_info�kinfo_proc_map�
PROC_STATUSES�getr�
STATUS_ZOMBIEr�)r��strrrrrs�	is_zombie<s�r�cst����fdd��}|S)z`Decorator which translates bare OSError exceptions into
    NoSuchProcess and AccessDenied.
    c
s�|j|j|j}}}z�|g|�Ri|��WSty4}zt|�r*t|||�|�t||�|�d}~wtyE}zt||�|�d}~wt	y`}z|dkr[dt
�vr[t||�|��d}~ww)Nr)r��_ppid�_name�ProcessLookupErrorr�rr
�PermissionErrorrr�r�)�self�args�kwargsr�rrDr���funrrrs�wrapperIs"����z wrap_exceptions.<locals>.wrapper)�	functools�wraps)r�r�rrr�rs�wrap_exceptionsDsr�c
cs��|j|j|j}}}zdVWdSttfy2}zt|j�r(t|||�|�t||�|�d}~wtyC}zt	||�|�d}~ww)z8Same as above, for routines relying on reading /proc fs.N)
r�r�r�r��FileNotFoundErrorr�rr
r�r)�instr�rDrr�rrrrrs�wrap_exceptions_procfs\s�
���r�c@s�eZdZdZgd�Zdd�Zdd�Zeedd���Z	d	d
�Z
dd�Zed
d��Zedd��Z
edd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zer`edd ��Zed!d"��ZeZedKd$d%��Zed&d'��Zed(d)��Zed*d+��ZedLd-d.��ZedMd0d1��Zed2d3��Zed4d5��Z ed6d7��Z!ed8d9��Z"ed:d;��Z#e$d<d=�Z%e$d<d>�Z&ed?d@��Z'edAdB��Z(er�edCdD��Z)edEdF��Z*edGdH��Z+edMdIdJ��Z,d/Sd/S)Nr�z1Wrapper class around underlying C implementation.)�_cacher�r�r�cCs||_d|_d|_dS�N)r�r�r�)r�r�rrrrrs�__init__ss
zProcess.__init__cCst�|j�dS)z+Raise NSP if the process disappeared on us.N)rk�	proc_namer��r�rrrrrs�
_assert_alivexszProcess._assert_alivecCs$t�|j�}t|�tt�ksJ�|S)z;Retrieves multiple process info in one shot as a raw tuple.)rkr�r�r�r��r�rzrrrrrs�oneshot~szProcess.oneshotcC�|j�|�dSr�)r�Zcache_activater�rrrrrs�
oneshot_enter��zProcess.oneshot_entercCr�r�)r�Zcache_deactivater�rrrrrs�oneshot_exit�r�zProcess.oneshot_exitcCs(|��td}|dur|St�|j�S)NrD)r�r�rkr�r�)r�rDrrrrrsrD�szProcess.namecCs�tr|jdkr	dSt�|j�Str8|jdkrdSt|��t�d|j�d��Wd�S1s1wYdSddl}|�	�}|rK|�
|d�pJdSdS)Nr�z/proc/z/exe)r	r�rkZproc_exer
r��os�readlink�shutil�cmdline�which)r�r�r�rrrrrs�exe�s


$�zProcess.exec
Cs�tr	|jdkr	gStrYzt�|j�WStyX}z:|jtjkrS|j|j|j	}}}t
|j�r7t|||�|�t|j�sCt
|||�|�td|�d��gWYd}~S�d}~wwt�|j�S)Nrz	ignoring z and returning an empty list)rr�r
rkZproc_cmdliner�r��EINVALr�r�r�rr�r
r)r�r�r�rDrrrrrrsr��s$

��zProcess.cmdlinecC�t�|j�Sr�)rkZproc_environr�r�rrrrrs�environ��zProcess.environcCs8|��td}t��}z||WStyYdSw)Nr$)r�r�rZget_terminal_map�KeyError)r�Ztty_nrZtmaprrrrrs�terminal�s
�zProcess.terminalcCs|��td|_|jS)Nr)r�r�r�r�rrrrrsr�szProcess.ppidcC�.|��}t�|td|td|td�S)Nrrr)r�rZpuidsr��r�Zrawtuplerrrrrs�uids��


�zProcess.uidscCr)Nrr r")r�rZpgidsr�rrrrrrs�gids�rzProcess.gidscCs8|��}t�|td|td|td|td�S)Nr0r2r4r6)r�rr]r�rrrrrrsrw�s



�zProcess.cpu_timescCs|��tdS)NrB)r�r�r�rrrrrs�cpu_num�szProcess.cpu_numcCs@|��}t|td|td|td|td|td�S)Nr8r:r<r>r@)r�rYr�rrrrrrs�memory_info�s




�zProcess.memory_infoFcCs$|��td}tr|st|�}|S)Nr&)r�r�r
r�)r��	monotonicr�rrrrrsr&szProcess.create_timecCstrt�|j�St|���Sr�)�HAS_PROC_NUM_THREADSrkrr�r��threadsr�rrrrrs�num_threadsszProcess.num_threadscCs$|��}t�|td|td�S)Nr(r*)r�rZpctxswr�rrrrrrs�num_ctx_switchess


�zProcess.num_ctx_switchescCsHt�|j�}g}|D]\}}}t�|||�}|�|�q
tr"|��|Sr�)rkZproc_threadsr�rZpthreadryrr�)r�r�r�Z	thread_id�utimeZstimer�rrrrrsr
szProcess.threads�inetc	Cs�t|\}}g}trt�|j|�}ntrt�|j||�}nt�|j||�}|D](}|dd�\}}}	}
}}tr@||vs?|	|vr@q't|||	|
||t	�}
|�
|
�q'|��|S)Nr!)rr
rkr�r�rZproc_net_connectionsr	rr�ryr�)r�r�r�r�rzr�r{r�r�r�r�r�rr�rrrrrsr�+s$�zProcess.net_connectionsNcCst�|j||j�Sr�)rZwait_pidr�r�)r��timeoutrrrrrs�waitDr�zProcess.waitcCr�r�)rkZproc_priority_getr�r�rrrrrs�nice_getHr�zProcess.nice_getcCst�|j|�Sr�)rkZproc_priority_setr�)r��valuerrrrrs�nice_setLszProcess.nice_setcCs|��td}t�|d�S)Nr�?)r�r�r�r�)r��coderrrrrsrPszProcess.statuscCs(|��}t�|td|tddd�S)Nr,r.r�)r�rZpior�rrrrrrs�io_countersVs

�zProcess.io_counterscCstr	|jdkr	dSt�|j�S)z)Return process current working directory.rr�)rr�rkZproc_cwdr�rrrrrs�cwd`szProcess.cwd�mmaprarccCst�|j�}dd�|D�S)z8Return files opened by process as a list of namedtuples.cSsg|]
\}}t�||��qSrr)rZ	popenfile)�.0�pathr�rrrrrs�
<listcomp>tsz&Process.open_files.<locals>.<listcomp>)rkZproc_open_filesr�)r�r�rrrrrs�
open_filespszProcess.open_filescCst�|j�}tr|��|S)z=Return the number of file descriptors opened by this process.)rkZproc_num_fdsr�r
r�r�rrrrrs�num_fdsvszProcess.num_fdscCr�r�)rkZproc_cpu_affinity_getr�r�rrrrrs�cpu_affinity_get�r�zProcess.cpu_affinity_getc
Cs�tttt����}|D]}||vrd|�d|�d�}t|��qz
t�|j|�WdStyV}z!|j	t	j
t	jhvrQ|D]}||vrPd|�d|�d�}t|�|�q<�d}~ww)Nzinvalid CPU z (choose between �))r�r�r�rxr�rkZproc_cpu_affinity_setr�r�r�r�ZEDEADLK)r�ZcpusZallcpusr��msgr�rrrrrs�cpu_affinity_set�s*���
���zProcess.cpu_affinity_setcCr�r�)rkZproc_memory_mapsr�r�rrrrrs�memory_maps�r�zProcess.memory_mapscCsN|durt�|j|�St|�dkrd|��}t|��|\}}t�|j|||�S)Nrz2second argument must be a (soft, hard) tuple, got )rkZproc_getrlimitr�r�r�Zproc_setrlimit)r��resourceZlimitsr ZsoftZhardrrrrrs�rlimit�s��zProcess.rlimit�F)rr�)-�__name__�
__module__�__qualname__�__doc__�	__slots__r�r�r�rr�r�r�rDr�r�r�rrrrrwr	rrZmemory_full_infor&rrr
r�rrrrrrrZnt_mmap_groupedZnt_mmap_extrrrr!r"r$rrrrrrrsr�ns�








	









	
��

	


�r�rrr%)ur)�
contextlibr�r�r��collectionsrrZ	xml.etreerr�rrrrkr	r
rrr
rrrrrrrZ__extra__all__ZSIDLZSTATUS_IDLEZSRUNZSTATUS_RUNNINGZSSLEEPZSTATUS_SLEEPINGZSSTOPZSTATUS_STOPPEDZSZOMBr�ZSWAITZSTATUS_WAITINGZSLOCKZ
STATUS_LOCKEDr�ZSDEADZ
STATUS_WAKINGZSONPROCZTCPS_ESTABLISHEDZCONN_ESTABLISHEDZ
TCPS_SYN_SENTZ
CONN_SYN_SENTZTCPS_SYN_RECEIVEDZ
CONN_SYN_RECVZTCPS_FIN_WAIT_1ZCONN_FIN_WAIT1ZTCPS_FIN_WAIT_2ZCONN_FIN_WAIT2ZTCPS_TIME_WAITZCONN_TIME_WAITZTCPS_CLOSEDZ
CONN_CLOSEZTCPS_CLOSE_WAITZCONN_CLOSE_WAITZ
TCPS_LAST_ACKZ
CONN_LAST_ACKZTCPS_LISTENZCONN_LISTENZTCPS_CLOSINGZCONN_CLOSINGZPSUTIL_CONN_NONEZ	CONN_NONEr�Zgetpagesize�PAGESIZEZAF_LINKr�r	�dictr�rFrRrYZpfullmemr]r`rbrdrtrvrwrxr}rr�r�r��
disk_usageZdisk_io_countersr�Znet_if_addrsr�r�r�r�r�r��	Exceptionr�r�r�r�r�r�r�r��contextmanagerr�r�rrrrrrrs�<module>sp�	��
�
��������	�
���
�������������$�����
/

 



��