HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/psutil/__pycache__/_psbsd.cpython-310.pyc
o

�N�g]y�@s�dZddlZddlZddlZddlZddlmmZddl	m
Z
ddl	mZddlm
Z
ddlmZddlmZdd	lmZdd
l
mZddl
mZddl
mZdd
l
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddl
mZddlmZddlm Z ddlm!Z!ddlm"Z"gZ#er�ej$e
j%ej&e
j'ej(e
j)ej*e
j+ej,e
j-ej.e
j/ej0e
j1iZ2n=er�ej$e
j%ej(e
j)ej*e
j+ej3e
j-ej,e
j-ej&e
j4ej5e
j'iZ2ner�ej$e
j%ej(e
j)ej*e
j+ej,e
j-ej&e
j4ej5e
j'iZ2ej6e
j7ej8e
j9ej:e
j;ej<e
j=ej>e
j?ej@e
jAejBe
jCejDe
jEejFe
jGejHe
jIejJe
jKejLe
jMiZNe�O�ZPejQZQeRed�ZSeRed�ZTeRed�ZUeRed�ZVeWd�idd�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�dGdH�dIdJ�dKdL��ZXe
dMgdN��ZYe
dOgdP��ZZe
dQgdR��Z[e[Z\e
dSgdT��Z]e
dUdV�Z^e
dWdX�Z_e�r�e
dYgdZ��Z`ne
dYgd[��Z`d\d]�Zad^d_�Zbd`da�ZceS�r�dbd�Zdndcd�Zddded_ededf�Zfe�s�e�r�dgdh�Zgndidh�Zgdjdk�Zhd�dldm�ZiejjZjejkZkejlZlejmZmdndo�Zndpdq�Zoe�r*drds�Zpdtdu�Zqdvdw�Zrdxdy�Zsdzd{�Zted|d}��Zud~d�Zve�sBe�rGd�d��ZwnejwZwd�d��Zxd�d��Zyejzd�d���Z{Gd�d��d�e|�Z}dS)�z5FreeBSD, OpenBSD and NetBSD platforms implementation.�N)�
namedtuple)�defaultdict�)�_common)�_psposix)�_psutil_bsd)�
_psutil_posix)�AccessDenied)�	conn_tmap)�conn_to_ntuple)�FREEBSD)�memoize)�memoize_when_activated)�NETBSD)�
NoSuchProcess)�OPENBSD)�
usage_percent)�
ZombieProcess)�FileNotFoundError)�PermissionError)�ProcessLookupError)�which�
per_cpu_times�proc_num_threads�proc_open_files�proc_num_fds�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)�totalZ	available�percent�used�free�active�inactive�buffers�cached�shared�wired�	scputimes��user�nice�system�idle�irq�pmem)r>r@�text�data�stack�	pcputimes)rYr[�
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)rjrkrlrmcCs�t��}|\}}}}}}}}trItdd��,}	|	D]!}
|
�d�r*t|
��d�d}q|
�d�r9t|
��d�d}qWd�n1sDwY|||}|||}t|||dd�}
t|||
||||||||�S)	z&System virtual memory as a namedtuple.z
/proc/meminfo�rbsBuffers:ris
MemShared:N�Zround_)	�cextZvirtual_memr�open�
startswith�int�splitrrL)ZmemrMrPrQrRrVrTrSrU�f�lineZavailrOrN�rw�A/opt/saltstack/salt/lib/python3.10/site-packages/psutil/_psbsd.py�virtual_memory�s$

����rycCs4t��\}}}}}t||dd�}t�||||||�S)z@System swap memory as (total, used, free, sin, sout) namedtuple.rro)rpZswap_memrrZsswap)rMrOrP�sinZsoutrNrwrwrx�swap_memory�sr{cCs"t��\}}}}}t|||||�S)z+Return system per-CPU times as a namedtuple)rp�	cpu_timesrWrXrwrwrxr|�sr|cCs>g}t��D]}|\}}}}}t|||||�}|�|�q|S)�'Return system CPU times as a namedtuple)rprrW�append)�retZcpu_trYrZr[r\r]�itemrwrwrxr�scCs.t�dkr	t�gStjrtd��dt_t�gS)r}r�&supported only starting from FreeBSD 8T)�cpu_count_logicalr|r�
__called__�NotImplementedErrorrwrwrwrxr�s
FcC�t��S)z0Return the number of logical CPUs in the system.)rpr�rwrwrwrxr���r�cCst�dkrdSdS)Nr)r�rwrwrwrx�cpu_count_physical��r�cCs�d}t��}|dur5|�d�}|dkr5|d|d�}t�|�}zt|�d��p)d}W|��n|��w|s>t�dkr>dS|S)z1Return the number of physical CPUs in the system.Nz	</groups>���r-zgroup/children/group/cpur)	rpZcpu_count_phys�rfind�ETZ
fromstring�len�findall�clearr�)r�s�index�rootrwrwrxr�s


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/statrnsintrrN)rrp�	cpu_statsrrqrrrsrtrrZ	scpustats)	ZctxswZintrsZ
soft_intrsZsyscallsZtrapsZfaultsZforksrurvrwrwrxr�s"�
�����r�c	CsLg}t��}|D]}|\}}}}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
    N)rp�disk_partitionsrZ	sdiskpartr~)�all�retlistZ
partitions�	partitionZdeviceZ
mountpointZfstype�optsZmaxfileZmaxpath�ntuplerwrwrxr�?s�r�cCs�t���}i}|D]C}zt�|�}t�|�}t�|�\}}Wnty7}z
|jtjkr-�WYd}~q	d}~wwt	t
d�rBt
�|�}t
�||||�||<q	|S)z)Get NIC stats (isup, duplex, speed, mtu).N�	NicDuplex)
�net_io_counters�keys�
cext_posixZ
net_if_mtuZnet_if_is_runningZnet_if_duplex_speed�OSError�errnoZENODEV�hasattrrr�Z	snicstats)�namesrrJZmtuZisupZduplexZspeed�errrwrwrx�net_if_stats\s"


���

r�c
Cstr7g}t�D]-}z	t|��|�}WnttfyYqw|D]}t|�}|�|�|�tj	|��q q|S|tj
vrLtd|d�dd�t
D��f��t
|\}}t
�}tr]t�d�}nt��}|D]#}|\}	}
}}}
}}|
|vr�||vr�t|	|
|||
|t|�}|�|�qct|�S)z System-wide network connections.�+invalid %r kind argument; choose between %s�, cS�g|]}t|��qSrw��repr��.0�xrwrwrx�
<listcomp>��z#net_connections.<locals>.<listcomp>r�)r�pids�Process�connectionsrr�listr~rZsconnr
�
ValueError�join�setrrp�net_connectionsr�TCP_STATUSES�add)�kindr�pidZcons�conn�families�types�rawlistr��fd�fam�type�laddr�raddrr�ntrwrwrxr�ps@
�
�
��
�r�cCsbz	t��\}}}Wn
tyYdSw|dk}|rtj}n|dkr&tj}n|d}t�|||�S)zReturn battery info.Nrr��<)rp�sensors_batteryr�rZPOWER_TIME_UNLIMITEDZPOWER_TIME_UNKNOWNZsbattery)rNZminsleftZ
power_pluggedZsecsleftrwrwrxr��s�r�c	Csrtt�}t�}t|�D]+}z t�|�\}}|dkrd}d|}|d�t�||||��Wqt	y6Yqw|S)z?Return CPU cores temperatures if available, else an empty dict.rNzCore %sZcoretemp)
rr�r��rangerpZsensors_cpu_temperaturer~rZshwtempr�)r�num_cpus�cpu�current�highrJrwrwrx�sensors_temperatures�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�r�rpZ
cpu_frequencyr�rsrt�
IndexErrorr�r~rZscpufreq)rr�r�r�Zavailable_freqZmin_freqZmax_freqrwrwrx�cpu_freq�s*� � �r�cCr�)z:The system boot time expressed in seconds since the epoch.)rp�	boot_timerwrwrwrxr��r�r�c	Csfg}t��}|D](}|\}}}}}|dkrtsJ�d}|dkr qt�||p&d|||�}|�|�q|S)z:Return currently connected users as a list of namedtuples.r�N�~)rp�usersrrZsuserr~)	r�r�r�rYZtty�hostnameZtstampr�r�rwrwrxr��sr�cCs:z	td���WdStyYdStyYdSw)NrFT)r�rJrr	rwrwrwrx�
_pid_0_exists�s��r�cCs*t��}trd|vrt�r|�dd�|S)z7Returns a list of PIDs currently running on the system.r)rpr�rr��insert)rrwrwrxr��sr�cCst�|�}|s|t�vSdS)zReturn True if pid exists.T)r�
pid_existsr�)r��existsrwrwrxr�
s

r�cCs4zt�|�td}|tjkWStyYdSw)NrF)rp�proc_oneshot_info�kinfo_proc_map�SZOMB�	Exception)r��strwrwrx�	is_zombies�r�cst����fdd��}|S)z`Decorator which translates bare OSError exceptions into
    NoSuchProcess and AccessDenied.
    cs�z�|g|�Ri|��WSty(t|j�r!t|j|j|j��t|j|j��ty5t|j|j��t	yN|jdkrMdt
�vrLt|j|j����w�Nr)rr�r�r�_name�_ppidrrr	r�r�)�self�args�kwargs��funrwrx�wrapper#s


�z wrap_exceptions.<locals>.wrapper)�	functools�wraps)r�r�rwr�rx�wrap_exceptionssr�c	csf�zdVWdSttfy%t|j�rt|j|j|j��t|j|j��ty2t	|j|j��w)z8Same as above, for routines relying on reading /proc fs.N)
rrr�r�rr�r�rrr	)�instrwrwrx�wrap_exceptions_procfs8s�
�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"��ZeZed#d$��Zed%d&��Zed'd(��Zed)d*��ZedLd,d-��ZedMd/d0��Zed1d2��Zed3d4��Z ed5d6��Z!ed7d8��Z"ed9d:��Z#e$d;d<�Z%e$d;d=�Z&d>d?�Z'e(r�ed@dA��Z)ne'Z)e*r�edBdC��Z+ne'Z+er�edDdE��Z,edFdG��Z-edHdI��Z.edMdJdK��Z/d.Sd.S)Nr�z1Wrapper class around underlying C implementation.)r�r�r��_cachecCs||_d|_d|_dS�N)r�r�r�)r�r�rwrwrx�__init__Ns
zProcess.__init__cCst�|j�dS)z+Raise NSP if the process disappeared on us.N)rp�	proc_namer��r�rwrwrx�
_assert_aliveSszProcess._assert_alivecCs$t�|j�}t|�tt�ksJ�|S)z;Retrieves multiple process info in one shot as a raw tuple.)rpr�r�r�r��r�rrwrwrx�oneshotYszProcess.oneshotcC�|j�|�dSr�)r�Zcache_activater�rwrwrx�
oneshot_entera�zProcess.oneshot_entercCr�r�)r�Zcache_deactivater�rwrwrx�oneshot_exitdr�zProcess.oneshot_exitcCs(|��td}|dur|St�|j�S)NrJ)r�r�rpr�r�)r�rJrwrwrxrJgszProcess.namecCs�tr|jdkr	dSt�|j�Str6|jdkrdSt|��t�d|j�Wd�S1s/wYdS|��}|rDt	|d�pCdSdS)Nr�z/proc/%s/exe)
rr�rpZproc_exerr��os�readlink�cmdliner)r�r�rwrwrx�exels


$�zProcess.exec
Cs�tr	|jdkr	gStrJzt�|j�WStyI}z+|jtjkrDt|j�r.t	|j|j
|j��t|j�s<t
|j|j
|j��gWYd}~S�d}~wwt�|j�Sr�)rr�rrpZproc_cmdliner�r��EINVALr�rr�r�r�r)r�r�rwrwrxr��s 

��
zProcess.cmdlinecC�t�|j�Sr�)rpZproc_environr�r�rwrwrx�environ��zProcess.environcCs8|��td}t��}z||WStyYdSw)Nr*)r�r�rZget_terminal_map�KeyError)r�Ztty_nrZtmaprwrwrx�terminal�s
�zProcess.terminalcCs|��td|_|jS)Nr)r�r�r�r�rwrwrxr�szProcess.ppidcC�.|��}t�|td|td|td�S)Nrr r")r�rZpuidsr��r�Zrawtuplerwrwrx�uids��


�zProcess.uidscCr)Nr$r&r()r�rZpgidsr�rrwrwrx�gids�rzProcess.gidscCs8|��}t�|td|td|td|td�S)Nr6r8r:r<)r�rrbr�rrwrwrxr|�s



�zProcess.cpu_timescC�|��tdS)NrH�r�r�r�rwrwrx�cpu_num��zProcess.cpu_numcCs@|��}t|td|td|td|td|td�S)Nr>r@rBrDrF)r�r^r�rrwrwrx�memory_info�s




�zProcess.memory_infocCr)Nr,rr�rwrwrxr,�r
zProcess.create_timecCstrt�|j�St|���Sr�)�HAS_PROC_NUM_THREADSrprr�r��threadsr�rwrwrx�num_threads�szProcess.num_threadscCs$|��}t�|td|td�S)Nr.r0)r�rZpctxswr�rrwrwrx�num_ctx_switches�s


�zProcess.num_ctx_switchescCsHt�|j�}g}|D]\}}}t�|||�}|�|�q
tr"|��|Sr�)rpZproc_threadsr�rZpthreadr~rr�)r�r�r�Z	thread_id�utimeZstimer�rwrwrxr
�szProcess.threads�inetc	Cs|tvrtd|d�dd�tD��f��trXt|\}}g}t�|j�}|D])}|\}}}	}
}}}
|
|jks8J�||vrO|	|vrOt|||	|
||t�}|�	|�q&|�
�t|�St|\}}t�|j||�}g}|D]}|\}}}	}
}}t|||	|
||t�}|�	|�qjt
r�|�
�|S)Nr�r�cSr�rwr�r�rwrwrxr��r�z'Process.connections.<locals>.<listcomp>)r
r�r�rrpr�r�rr�r~r�r�Zproc_connectionsr)r�r�r�r�rr�r�r�r�r�r�r�rr�r�rwrwrxr��s>��
��zProcess.connectionsNcCst�|j||j�Sr�)rZwait_pidr�r�)r��timeoutrwrwrx�waitr�zProcess.waitcCr�r�)r��getpriorityr�r�rwrwrx�nice_getr�zProcess.nice_getcCst�|j|�Sr�)r��setpriorityr�)r��valuerwrwrx�nice_set#szProcess.nice_setcCs|��td}t�|d�S)Nr�?)r�r��
PROC_STATUSES�get)r��coderwrwrxr'szProcess.statuscCs(|��}t�|td|tddd�S)Nr2r4r�)r�rZpior�rrwrwrx�io_counters-s

�zProcess.io_counterscCs<tr	|jdkr	dSts
trt�|j�pdSttrd��d��)z)Return process current working directory.rNr�r�)rr�r�HAS_PROC_OPEN_FILESrpZproc_cwdr�rr�rwrwrx�cwd6s���zProcess.cwdZmmaprfrhcCst�r�)r�r�rwrwrx�_not_implementedKszProcess._not_implementedcCst�|j�}dd�|D�S)z8Return files opened by process as a list of namedtuples.cSsg|]
\}}t�||��qSrw)rZ	popenfile)r��pathr�rwrwrxr�Usz&Process.open_files.<locals>.<listcomp>)rprr�)r�r�rwrwrx�
open_filesQszProcess.open_filescCst�|j�}tr|��|S)z=Return the number of file descriptors opened by this process.)rprr�rr�r�rwrwrx�num_fds\szProcess.num_fdscCr�r�)rpZproc_cpu_affinity_getr�r�rwrwrx�cpu_affinity_getjr�zProcess.cpu_affinity_getc
Cs�tttt����}|D]}||vrtd||f��qz
t�|j|�WdStyK}z|j	t	j
t	jfvrF|D]}||vrEtd||f��q7�d}~ww)Nz#invalid CPU #%i (choose between %s))�tupler�r�rr�rpZproc_cpu_affinity_setr�r�r�r�ZEDEADLK)r�ZcpusZallcpusr�r�rwrwrx�cpu_affinity_setns,�������zProcess.cpu_affinity_setcCr�r�)rpZproc_memory_mapsr�r�rwrwrx�memory_maps�r�zProcess.memory_mapscCsL|durt�|j|�St|�dkrtdt|���|\}}t�|j|||�S)Nrz4second argument must be a (soft, hard) tuple, got %s)rpZproc_getrlimitr�r�r�r�Zproc_setrlimit)r�ZresourceZlimitsZsoftZhardrwrwrx�rlimit�s��zProcess.rlimit)rr�)0�__name__�
__module__�__qualname__�__doc__�	__slots__r�r�r�rr�r�r�rJr�r�r�rrrrr|rr	rZmemory_full_infor,rrr
r�rrrrrrrZnt_mmap_groupedZnt_mmap_extr rr"�HAS_PROC_NUM_FDSr#r$r&r'r(rwrwrwrxr�Is�










	



!




��


�r�rw)F)~r,�
contextlibr�r�r�Zxml.etree.ElementTreeZetreeZElementTreer��collectionsrrr�rrrrprr�r	r
rrr
rrrrrrZ_compatrrrrZ__extra__all__ZSIDLZSTATUS_IDLEZSRUNZSTATUS_RUNNINGZSSLEEPZSTATUS_SLEEPINGZSSTOPZSTATUS_STOPPEDr�Z
STATUS_ZOMBIEZSWAITZSTATUS_WAITINGZSLOCKZ
STATUS_LOCKEDrZSDEADZ
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�ZgetpagesizeZPAGESIZEZAF_LINKr�ZHAS_PER_CPU_TIMESrrr.�dictr�rLrWr^Zpfullmemrbrergriryr{r|rr�r�r�r�r��
disk_usageZdisk_io_countersr�Znet_if_addrsr�r�r�r�r�r�r�r�r�r�r�r��contextmanagerr��objectr�rwrwrwrx�<module>sh�	��
�



��������	�
���
�������������#�����	
	

#(