U
|f} @ s d Z ddlZddlZddlZddlZddlmZ ddlmZ ddlm Z ddl
mZ ddl
mZ dd l
m
Z dd
l
mZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! g Z"erej#ej$ej%ej&ej'ej(ej)ej*ej+ej,ej-ej.ej/ej0iZ1n~erej#ej$ej'ej(ej)ej*ej2ej,ej+ej,ej%ej3ej4ej&iZ1n:erej#ej$ej'ej(ej)ej*ej+ej,ej%ej3ej4ej&iZ1ej5ej6ej7ej8ej9ej:ej;ejej?ej@ejAejBejCejDejEejFejGejHejIejJejKejLiZMeN ZOejPZPeQedZReQedZSeQedZTeQedZUeVdddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6ZWed7d8d9d:d;dd?d@dAdBgZXedCdDdEdFdGdHgZYedIdJdKdLdMdNgZZeZZ[edOdDdFdPdQgZ\edRdSZ]edTdUZ^erdedVdWdXdYdZd[d\d]gZ_nedVdWdXdYdZgZ_d^d_ Z`d`da Zadbdc ZbeRrddd Zcnded Zcdfec_ddgdh Zeeserdidj Zfndkdj Zfdldm Zgerdndo Zhnerdpdo ZhddqdrZiejjZjejkZkejlZlejmZmdsdt Zndudv Zoer@dwdx Zpdydz Zqd{d| Zrd}d~ Zsedd Ztdd Zuertdd Zvnerdd ZvnejvZvdd Zwdd Zxejydd ZzG dd dZ{dS )z5FreeBSD, OpenBSD and NetBSD platforms implementation. N)defaultdict)
namedtuple)ElementTree )_common)_psposix)_psutil_bsd)
_psutil_posix)FREEBSD)NETBSD)OPENBSD)AccessDenied)
NoSuchProcess)
ZombieProcess) conn_tmap)conn_to_ntuple)debug)memoize)memoize_when_activated)
usage_percent)FileNotFoundError)PermissionError)ProcessLookupError)which
per_cpu_timesproc_num_threadsproc_open_filesproc_num_fds
)ppidstatusreal_uid
effective_uid saved_uidreal_gid
effective_gid saved_gidttynrcreate_timectx_switches_volctx_switches_unvol
read_io_countwrite_io_count user_timesys_timech_user_timech_sys_timerssvmsmemtextmemdatamemstackcpunumnamesvmemtotal availablepercentusedfreeactiveinactivebufferscachedsharedwired scputimesusernicesystemidleirqpmemrG rH textdatastack pcputimes
children_userchildren_system
pmmap_grouped*path rss, private, ref_count, shadow_count pmmap_ext6addr, perms path rss, private, ref_count, shadow_countsdiskioZ
read_countZwrite_count
read_byteswrite_bytesZ read_timeZ
write_timeZ busy_timec C s t } tr| \}}}}}}tddN}|D ]B}|drPt| d d } q,|dr,t| d d }
q,W 5 Q R X || }|| }n,| \}}}}}}} }
|| | }|| | }t|| |dd}
t|||
||||| ||
|S )Nz
/proc/meminforbs Buffers:r i s
MemShared:Zround_) cextZvirtual_memr open
startswithintsplitr rN )ZmemrO rS rT rU rY rW flinerV rX rR ZavailrQ rw @/opt/alt/python38/lib64/python3.8/site-packages/psutil/_psbsd.pyvirtual_memory s8
ry c C s4 t \} }}}}t|| dd}t| |||||S )z@System swap memory as (total, used, free, sin, sout) namedtuple.r ro )rp Zswap_memr r Zsswap)rO rR rS sinZsoutrQ rw rw rx swap_memory s r{ c C s" t \} }}}}t| ||||S )z,Return system per-CPU times as a namedtuple.)rp cpu_timesrZ )r[ r\ r] r^ r_ rw rw rx r| s r| c C s> g } t D ],}|\}}}}}t|||||}| | q| S )(Return system CPU times as a namedtuple.)rp r rZ append)retZcpu_tr[ r\ r] r^ r_ itemrw rw rx r s c C s2 t dkrt gS tjr$d} t| dt_t gS )r} r &supported only starting from FreeBSD 8T)cpu_count_logicalr| r
__called__NotImplementedError)msgrw rw rx r
s
Fc C s t S )z0Return the number of logical CPUs in the system.)rp r rw rw rw rx r s r c C s t dkrdS d S )Nr )r rw rw rw rx cpu_count_cores s r c C sx d} t }|dk rb|d}|dkrb|d|d }t|}zt|dpRd} W 5 | X | stt dkrtdS | S )z-Return the number of CPU cores in the system.Nz r% zgroup/children/group/cpur ) rp Zcpu_topologyrfindr
fromstringclearlenfindallr )r sindexrootrw rw rx r $ s
c C s t rt \} }}}}nptrnt \} }}}}}}tdd*}|D ]}|drBt| d }qBW 5 Q R X ntrt \} }}}}}}t
| |||S )z*Return various CPU stats as a named tuple.z
/proc/statrn s intrr )r
rp cpu_statsr rq rr rs rt r r Z scpustats) ZctxswZintrsZ
soft_intrsZsyscallsZ_trapsZ_faults_forksru rv rw rw rx r ? s
r c
C s g } t }t|D ]}zt|\}}W n tk
r@ Y qY nX |rz t|dd dd }W n ttfk
r d}Y nX z t|dd dd }W n ttfk
r d}Y nX | t
||| q| S )zReturn 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 /r N)r rangerp cpu_freqr rs rt
IndexError
ValueErrorr~ r scpufreq)r num_cpuscpucurrentZavailable_freqZmin_freqZmax_freqrw rw rx r a s$
r c C s t t } t| ddgS )Ng )floatrp r r r )currrw rw rx r { s c C s@ g }t }|D ]*}|\}}}}t||||}|| q|S )zReturn mounted disk partitions as a list of namedtuples.
'all' argument is ignored, see:
https://github.com/giampaolo/psutil/issues/906.
)rp disk_partitionsr Z sdiskpartr~ ) allretlistZ
partitions partitionZdeviceZ
mountpointZfstypeoptsntuplerw rw rx r s r c
C s t } i }| D ]}z&t|}t|}t|\}}W n0 tk
rl } z|jtjkr\ W 5 d}~X Y qX t t
drt
|}d|}d|k} t
| ||||||<