<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    =_{H                 @   s  d Z 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	mZ ddl	mZ ddl	mZ dd	l
mZ dd
l
mZ ddl
mZ ddl
mZ ddl
mZ ddl
mZ ddl
mZ ddl
mZ ddl
mZ ddl
mZ ddlmZ ddlmZ ddlmZ ddlmZ dgZe edZ!e edZ"e edZ#e$ Z%ej&Z&ej'e
j(ej)e
j*ej+e
j,ej-e
j,ej.e
j/iZ0ej1e
j2ej3e
j4ej5e
j6ej7e
j8ej9e
j:ej;e
j<ej=e
j>ej?e
j@ejAe
jBejCe
jDejEe
jFejGe
jHiZIeJdddddddd d!ZKed"d#d$gZLeLZMed%d&d'd(d)gZNed*d+d,d-d.d/gZOd0d1 ZPd2d3 ZQd4d5 ZRd6d7 ZSd8d9 ZTd:d; ZUd<d= ZVejWZWejXZXdRd?d@ZYejZZZe"rej[Z[dSdBdCZ\dDdE Z]dFdG Z^dHdI Z_dJdK Z`dLdM ZadNdO ZbG dPdQ dQecZddS )TzAIX platform implementation.    N)
namedtuple   )_common)_psposix)_psutil_aix)_psutil_posix)AccessDenied)conn_to_ntuple)get_procfs_path)memoize_when_activated)NIC_DUPLEX_FULL)NIC_DUPLEX_HALF)NIC_DUPLEX_UNKNOWN)NoSuchProcess)usage_percent)ZombieProcess)FileNotFoundError)PermissionError)ProcessLookupError)PY3PROCFS_PATHproc_threadsnet_io_countersproc_io_counters                  )ppidrssvmscreate_timenicenum_threadsstatusttynrpmemr!   r"   	scputimesusersystemidleZiowaitsvmemtotalZ	availablepercentusedfreec              C   s4   t  \} }}}}t| | | dd}t| ||||S )Nr   )round_)cextZvirtual_memr   r-   )r.   Zavailr1   ZpinnedZinuser/    r4   @/opt/alt/python37/lib64/python3.7/site-packages/psutil/_psaix.pyvirtual_memoryj   s    r6   c              C   s:   t  \} }}}| | }t|| dd}t| |||||S )z=Swap system memory as a (total, used, free, sin, sout) tuple.r   )r2   )r3   Zswap_memr   r   sswap)r.   r1   sinsoutr0   r/   r4   r4   r5   swap_memoryp   s    r:   c              C   s   t  } tdd t|  D  S )z-Return system-wide CPU times as a named tuplec             S   s   g | ]}t |qS r4   )sum).0xr4   r4   r5   
<listcomp>   s    zcpu_times.<locals>.<listcomp>)r3   per_cpu_timesr)   zip)retr4   r4   r5   	cpu_times}   s    rB   c              C   s   t  } dd | D S )z5Return system per-CPU times as a list of named tuplesc             S   s   g | ]}t | qS r4   )r)   )r<   r=   r4   r4   r5   r>      s    z!per_cpu_times.<locals>.<listcomp>)r3   r?   )rA   r4   r4   r5   r?      s    r?   c               C   s$   y
t dS  tk
r   dS X dS )z0Return the number of logical CPUs in the system.SC_NPROCESSORS_ONLNN)ossysconf
ValueErrorr4   r4   r4   r5   cpu_count_logical   s    
rG   c              C   sr   d} t j| dt jt jd}| \}}tr@dd ||fD \}}|jdkrZtd| |f |  }t	|ppd S )Nzlsdev -Cc processorT)shellstdoutstderrc             S   s   g | ]}| tjjqS r4   )decodesysrI   encoding)r<   r=   r4   r4   r5   r>      s   z&cpu_count_physical.<locals>.<listcomp>r   z%r command error
%s)

subprocessPopenPIPEcommunicater   
returncodeRuntimeErrorstrip
splitlineslen)cmdprI   rJ   Z
processorsr4   r4   r5   cpu_count_physical   s    

rY   c              C   s    t  \} }}}t| |||S )z*Return various CPU stats as a named tuple.)r3   	cpu_statsr   	scpustats)ctx_switches
interruptssoft_interruptssyscallsr4   r4   r5   rZ      s    rZ   Fc          	   C   sl   g }t  }xZ|D ]R}|\}}}}|dkr.d}| s>t|js>qd }}	t||||||	}
||
 qW |S )zReturn system disk partitions.Znone N)r3   disk_partitions
disk_usager.   r   	sdiskpartappend)allretlist
partitions	partitiondevice
mountpointfstypeoptsmaxfilemaxpathntupler4   r4   r5   ra      s    

ra   c             C   s   t j}| |kr.td| ddd |D f t j|  \}}t|}g }x`|D ]X}|\}}	}
}}}}|	|krpqP|
|krzqPt||	|
|||t|dkr|ndd}|| qPW |S )zReturn socket connections.  If pid == -1 return system-wide
    connections (as opposed to connections opened by one process only).
    z+invalid %r kind argument; choose between %sz, c             S   s   g | ]}t |qS r4   )repr)r<   r=   r4   r4   r5   r>      s    z#net_connections.<locals>.<listcomp>rp   N)pid)	r   	conn_tmaprF   joinr3   net_connectionsr	   TCP_STATUSESrd   )kind_pidZcmapZfamiliestypesrawlistrA   itemfdfamtype_laddrraddrr&   rr   ntr4   r4   r5   ru      s"    

ru   c              C   s   t td} tdd t D }i }x|D ]}t|\}}d}d}tjdd|gtjtjd}|	 \}	}
t
rd	d |	|
fD \}	}
|jdkrtd
|	}|dk	rt|d}|d}| |t}t||||||< q(W |S )z)Get NIC stats (isup, duplex, speed, mtu).)FullZHalfc             S   s   g | ]}|d  qS )r   r4   )r<   r=   r4   r4   r5   r>      s    z net_if_stats.<locals>.<listcomp>r`   r   z/usr/bin/entstatz-d)rI   rJ   c             S   s   g | ]}| tjjqS r4   )rK   rL   rI   rM   )r<   r=   r4   r4   r5   r>      s   z"Running: (\d+) Mbps.*?(\w+) DuplexNr   r   )r   r   setnet_if_addrsr3   net_if_statsrN   rO   rP   rQ   r   rR   researchintgroupgetr   r   	snicstats)Z
duplex_mapnamesrA   nameisupmtuduplexspeedrX   rI   rJ   Z	re_resultr4   r4   r5   r      s.    


r   c               C   s   t  S )z:The system boot time expressed in seconds since the epoch.)r3   	boot_timer4   r4   r4   r5   r     s    r   c              C   s`   g } t  }d}xJ|D ]B}|\}}}}}}	|s0q||kr<d}t|||||	}
| |
 qW | S )z:Return currently connected users as a list of namedtuples.)z:0.0z:0	localhost)r3   usersr   suserrd   )rf   rz   r   r{   r*   ttyhostnameZtstampZuser_processrr   r   r4   r4   r5   r     s    
r   c               C   s   dd t t D S )z7Returns a list of PIDs currently running on the system.c             S   s   g | ]}|  rt|qS r4   )isdigitr   )r<   r=   r4   r4   r5   r>   -  s    zpids.<locals>.<listcomp>)rD   listdirr
   r4   r4   r4   r5   pids+  s    r   c             C   s   t jt jt t| dS )z&Check for the existence of a unix pid.Zpsinfo)rD   pathexistsrt   r
   str)rr   r4   r4   r5   
pid_exists0  s    r   c                s   t   fdd}|S )zCall callable into a try/except clause and translate ENOENT,
    EACCES and EPERM in NoSuchProcess or AccessDenied exceptions.
    c          	      sz   y | f||S  t tfk
rT   t| js>t| j| jnt| j| j| jY n" tk
rt   t	| j| jY nX d S )N)
r   r   r   rr   r   _namer   _ppidr   r   )selfargskwargs)funr4   r5   wrapper9  s    
z wrap_exceptions.<locals>.wrapper)	functoolswraps)r   r   r4   )r   r5   wrap_exceptions5  s    r   c               @   sx  e Zd ZdZdddddgZdd Zd	d
 Zdd Zee	dd Z
ee	dd Zedd Zedd Zedd Zedd Zedd Zedd Zeredd ZedAd d!Zed"d# Zed$d% Zed&d' Zed(d) Zed*d+ Zed,d- Zed.d/ Zed0d1 Zed2d3 ZeZed4d5 Zd6d7 Z ed8d9 Z!ed:d; Z"edBd=d>Z#e$rted?d@ Z%d<S )CProcessz1Wrapper class around underlying C implementation.rr   r   r   _procfs_path_cachec             C   s   || _ d | _d | _t | _d S )N)rr   r   r   r
   r   )r   rr   r4   r4   r5   __init__O  s    zProcess.__init__c             C   s   | j |  | j|  d S )N)_proc_basic_infocache_activate
_proc_cred)r   r4   r4   r5   oneshot_enterU  s    zProcess.oneshot_enterc             C   s   | j |  | j|  d S )N)r   cache_deactivater   )r   r4   r4   r5   oneshot_exitY  s    zProcess.oneshot_exitc             C   s   t | j| jS )N)r3   Zproc_basic_inforr   r   )r   r4   r4   r5   r   ]  s    zProcess._proc_basic_infoc             C   s   t | j| jS )N)r3   Z	proc_credrr   r   )r   r4   r4   r5   r   b  s    zProcess._proc_credc             C   s$   | j dkrdS t| j | jdS )Nr   Zswapper )rr   r3   Z	proc_namer   rstrip)r   r4   r4   r5   r   g  s    
zProcess.namec             C   s   |   }|sdS |d }tjj|krtj|sJtjtj|  |}tj|rttj|rtt	|tj
rt|S tj|}xLtjd dD ]8}tjtj||}tj|rt	|tj
r|S qW dS )Nr`   r   PATH:)cmdlinerD   r   sepisabsabspathrt   cwdisfileaccessX_OKbasenameenvironsplit)r   r   exer   Zpossible_exer4   r4   r5   r   n  s$    zProcess.exec             C   s   t | jS )N)r3   Z	proc_argsrr   )r   r4   r4   r5   r     s    zProcess.cmdlinec             C   s   t | jS )N)r3   Zproc_environrr   )r   r4   r4   r5   r     s    zProcess.environc             C   s   |   td  S )Nr#   )r   proc_info_map)r   r4   r4   r5   r#     s    zProcess.create_timec             C   s   |   td  S )Nr%   )r   r   )r   r4   r4   r5   r%     s    zProcess.num_threadsc             C   sZ   t | j}g }x*|D ]"\}}}t|||}|| qW |sVtd| j| jf  |S )Nz%s/%s)	r3   r   rr   r   pthreadrd   rD   statr   )r   rz   rf   Z	thread_idutimeZstimero   r4   r4   r5   threads  s    zProcess.threadsinetc             C   s,   t || jd}|s(td| j| jf  |S )N)rx   z%s/%s)ru   rr   rD   r   r   )r   rw   rA   r4   r4   r5   connections  s    zProcess.connectionsc             C   s   t | jS )N)
cext_posixgetpriorityrr   )r   r4   r4   r5   nice_get  s    zProcess.nice_getc             C   s   t | j|S )N)r   setpriorityrr   )r   valuer4   r4   r5   nice_set  s    zProcess.nice_setc             C   s   |   td  | _| jS )Nr    )r   r   r   )r   r4   r4   r5   r      s    zProcess.ppidc             C   s"   |   \}}}}}}t|||S )N)r   r   puids)r   real	effectivesaved_r4   r4   r5   uids  s    zProcess.uidsc             C   s"   |   \}}}}}}t|||S )N)r   r   r   )r   r   r   r   r   r4   r4   r5   gids  s    zProcess.gidsc             C   s   t | j| j}tj| S )N)r3   Zproc_cpu_timesrr   r   r   	pcputimes)r   rB   r4   r4   r5   rB     s    zProcess.cpu_timesc             C   sP   |   td  }|d@ d? |d@ B }x&tdD ]}t|j|kr0|S q0W d S )Nr'   l           i  z	/dev/**/*)r   r   globrD   r   st_rdev)r   Zttydevdevr4   r4   r5   terminal  s    zProcess.terminalc             C   sR   | j }ytd|| jf }|dS  tk
rL   td|| jf  d S X d S )Nz	%s/%s/cwd/z%s/%s)r   rD   readlinkrr   r   r   r   )r   Zprocfs_pathresultr4   r4   r5   r     s    
zProcess.cwdc             C   s2   |   }|td  d }|td  d }t||S )Nr!   i   r"   )r   r   r(   )r   rA   r!   r"   r4   r4   r5   memory_info  s    zProcess.memory_infoc             C   s   |   td  }t|dS )Nr&   ?)r   r   PROC_STATUSESr   )r   coder4   r4   r5   r&     s    zProcess.statusc             C   s   t jddt| jgt jt jd}| \}}trFdd ||fD \}}d| kr`t| j| j	t
d|}g }xR|D ]J\}}| }|dr|d	d  }| d
krqv|t|t| qvW |S )Nz/usr/bin/procfilesz-n)rI   rJ   c             S   s   g | ]}| tjjqS r4   )rK   rL   rI   rM   )r<   r=   r4   r4   r5   r>     s   z&Process.open_files.<locals>.<listcomp>zno such processz (\d+): S_IFREG.*\s*.*name:(.*)\nz//r   zcannot be retrieved)rN   rO   r   rr   rP   rQ   r   lowerr   r   r   findallrT   
startswithrd   r   	popenfiler   )r   rX   rI   rJ   Z	procfilesrf   r|   r   r4   r4   r5   
open_files  s$    
zProcess.open_filesc             C   s(   | j dkrdS ttd| j| j f S )Nr   z%s/%s/fd)rr   rV   rD   r   r   )r   r4   r4   r5   num_fds  s    
zProcess.num_fdsc             C   s   t jt| j S )N)r   pctxswr3   Zproc_num_ctx_switchesrr   )r   r4   r4   r5   num_ctx_switches  s    zProcess.num_ctx_switchesNc             C   s   t | j|| jS )N)r   Zwait_pidrr   r   )r   timeoutr4   r4   r5   wait  s    zProcess.waitc             C   sX   yt | j\}}}}W n. tk
rF   t| js@t| j| j Y nX t||||S )N)	r3   r   rr   OSErrorr   r   r   r   pio)r   rcZwcrbwbr4   r4   r5   io_counters  s    
zProcess.io_counters)r   )N)&__name__
__module____qualname____doc__	__slots__r   r   r   r   r   r   r   r   r   r   r   r#   r%   HAS_THREADSr   r   r   r   r    r   r   rB   r   r   r   Zmemory_full_infor&   r   r   r   r   HAS_PROC_IO_COUNTERSr   r4   r4   r4   r5   r   J  sJ   
r   )F)rp   )er   r   r   rD   r   rN   rL   collectionsr   r`   r   r   r   r3   r   r   r   r	   r
   r   r   r   r   r   r   r   _compatr   r   r   r   Z__extra__all__hasattrr   ZHAS_NET_IO_COUNTERSr   ZgetpagesizeZ	PAGE_SIZEZAF_LINKZSIDLSTATUS_IDLEZSZOMBSTATUS_ZOMBIEZSACTIVESTATUS_RUNNINGZSSWAPZSSTOPSTATUS_STOPPEDr   ZTCPS_ESTABLISHEDCONN_ESTABLISHEDZTCPS_SYN_SENTCONN_SYN_SENTZTCPS_SYN_RCVDCONN_SYN_RECVZTCPS_FIN_WAIT_1CONN_FIN_WAIT1ZTCPS_FIN_WAIT_2CONN_FIN_WAIT2ZTCPS_TIME_WAITCONN_TIME_WAITZTCPS_CLOSED
CONN_CLOSEZTCPS_CLOSE_WAITCONN_CLOSE_WAITZTCPS_LAST_ACKCONN_LAST_ACKZTCPS_LISTENCONN_LISTENZTCPS_CLOSINGCONN_CLOSINGZPSUTIL_CONN_NONE	CONN_NONErv   dictr   r(   Zpfullmemr)   r-   r6   r:   rB   r?   rG   rY   rZ   Zdisk_io_countersrb   ra   r   r   ru   r   r   r   r   r   r   objectr   r4   r4   r4   r5   <module>   s   


		

%