관리-도구
편집 파일: _pssunos.cpython-39.pyc
a ����M�_�c����������������������@���s8��d�Z�ddlZddlZddlZddlZddlZddlZddlmZ�ddlm Z �ddl mZ�ddl mZ�ddl m Z�dd l mZ�dd lmZ�ddlmZ�ddlmZ�dd lmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlmZ�ddlm Z �ddlm!Z!�g�d�Z"e�#��Z$ej%Z%ej&dkZ'dZ(dZ)ej*ej+ej,ej-ej.ej/ej0ej1ej2ej3ej4ej-ej5ej6iZ7ej8ej9ej:ej;ej<ej=ej>ej?ej@ejAejBejCejDejEejFejGejHejIejJejKejLejMejNejOejPe(ejQe)iZReSddddd d!d"d#d$d%d&d'd(�ZTed)g�d*��ZUed+g�d,��ZVed-g�d.��ZWed/d0d1g�ZXeXZYed2g�d3��ZZed4d5d6�[eZj\���Z]d7d8��Z^d9d:��Z_d;d<��Z`d=d>��Zad?d@��ZbdAdB��ZcdCdD��ZdejeZeejfZfdYdFdG�ZgejhZhejiZidZdIdJ�ZjdKdL��ZkdMdN��ZldOdP��ZmdQdR��ZndSdT��ZodUdV��ZpG�dWdX��dXeq�ZrdS�)[z'Sun OS Solaris platform implementation.�����N)� namedtuple)�AF_INET����)�_common)�_psposix)� _psutil_posix)� _psutil_sunos)�AccessDenied)�AF_INET6)�debug)�get_procfs_path)� isfile_strict)�memoize_when_activated)� NoSuchProcess)�sockfam_to_enum)�socktype_to_enum)� usage_percent)� ZombieProcess)�b)�FileNotFoundError)�PermissionError)�ProcessLookupError)�PY3)� CONN_IDLE� CONN_BOUNDZPROCFS_PATHl��������ZIDLEZBOUND����������������������������� ���� �������)�ppid�rss�vms�create_time�nice�num_threads�status�ttynr�uid�euid�gid�egid� scputimes)�user�systemZidleZiowait� pcputimes)r2���r3���� children_user�children_system�svmem)�totalZ available�percent�used�free�pmemr&���r'���� pmmap_grouped)�pathr&���Z anonymous�locked� pmmap_extzaddr perms � c������������������C���sF���t��d�t�}�t��d�t��}}|�|�}t||�dd�}t|�||||�S�)zReport virtual memory metrics.� SC_PHYS_PAGES�SC_AVPHYS_PAGESr����Zround_)�os�sysconf� PAGE_SIZEr���r7���)r8���r;���Zavailr:���r9�����rH����5/usr/lib64/python3.9/site-packages/psutil/_pssunos.py�virtual_memory{���s ����rJ���c������������ ��� ���C���s ��t����\}�}tjddtjd��ddgtjd�}|���\}}trL|� t jj�}|j dkrdtd|j ���|����d �d d��}|s�td��d�}}|D�]D}|���}|d d��\} } |tt| �d��7�}|tt| �d��7�}q�||�}t||d d�}t�|||||�t�|t��S�)zReport swap memory metrics.z/usr/bin/envzPATH=/usr/sbin:/sbin:%s�PATHZswapz-l)�stdoutr���z'swap -l' failed (retcode=%s)� r���Nzno swap device(s) configuredr���r���i���rD���)�cextZswap_mem� subprocess�PopenrE����environ�PIPE�communicater����decode�sysrL����encoding� returncode�RuntimeError�strip�split�intr���r���ZsswaprG���) ZsinZsout�prL����stderr�linesr8���r;����line�t�fr:���r9���rH���rH���rI����swap_memory����s6������� �rb���c������������������C���s���t����}�tdd��t|���D����S�)z-Return system-wide CPU times as a named tuplec�����������������S���s���g�|�]}t�|��qS�rH���)�sum��.0�xrH���rH���rI���� <listcomp>���������zcpu_times.<locals>.<listcomp>)rN���� per_cpu_timesr1����zip��retrH���rH���rI���� cpu_times����s����rm���c������������������C���s���t����}�dd��|�D��S�)z5Return system per-CPU times as a list of named tuplesc�����������������S���s���g�|�]}t�|���qS�rH���)r1���rd���rH���rH���rI���rg�������rh���z!per_cpu_times.<locals>.<listcomp>)rN���ri���rk���rH���rH���rI���ri�������s����ri���c�������������������C���s&���zt��d�W�S��ty ���Y�dS�0�dS�)z0Return the number of logical CPUs in the system.�SC_NPROCESSORS_ONLNN)rE���rF���� ValueErrorrH���rH���rH���rI����cpu_count_logical����s����rp���c�������������������C���s���t����S�)z1Return the number of physical CPUs in the system.)rN���Zcpu_count_physrH���rH���rH���rI����cpu_count_physical����s����rq���c������������������C���s$���t����\}�}}}d}t�|�|||�S�)z*Return various CPU stats as a named tuple.r���)rN���� cpu_statsr���Z scpustats)Zctx_switchesZ interruptsZsyscallsZtrapsZsoft_interruptsrH���rH���rI���rr�������s ���� �rr���Fc�����������������C���s����g�}t����}|D�]�}|\}}}}|dkr,d}|�s�zt|�js@W�qW�n@�ty��}�z(td||f���W�Y�d}~qW�Y�d}~n d}~0�0�d�} } t�||||| | �}|�|��q|S�)zReturn system disk partitions.Znone��zskipping %r: %rN) rN����disk_partitions� disk_usager8����OSErrorr���r���Z sdiskpart�append)�all�retlistZ partitions� partitionZdeviceZ mountpointZfstypeZopts�errZmaxfileZmaxpathZntuplerH���rH���rI���rt�������s&���� "�rt������c�������������� ���C���s��t�j���}|dkr|�dd��|�|vrFtd|�d�dd��|D���f���t�j|��\}}t�|�}t��}|D�]�}|\}} } }}} }| |vr�qh| |vr�qh| t t fv�r�|r�t�j|��}|r�t�j|��}t| �} t | �} t| �} |dkr�t��|| | ||| |�}nt��|| | ||| �}|�|��qht|�S�)z�Return socket connections. If pid == -1 return system-wide connections (as opposed to connections opened by one process only). Only INET sockets are returned (UNIX are not). r|����unixr���z+invalid %r kind argument; choose between %sz, c�����������������S���s���g�|�]}t�|��qS�rH���)�reprrd���rH���rH���rI���rg�����rh���z#net_connections.<locals>.<listcomp>)r���Z conn_tmap�copy�popro����joinrN����net_connections�setr���r ����addr�TCP_STATUSESr���r���Zsconn�pconn�add�list)�kind�_pidZcmapZfamilies�types�rawlistrl����item�fdZfam�type_ZladdrZraddrr+����pid�ntrH���rH���rI���r��������s:���� � r����c������������������C���sR���t����}�|����D�]<\}}|\}}}}ttd�r8t�|�}t�||||�|�|<�q|�S�)z)Get NIC stats (isup, duplex, speed, mtu).� NicDuplex)rN����net_if_stats�items�hasattrr���r����Z snicstats)rl����namer����ZisupZduplexZspeedZmturH���rH���rI���r����!��s���� r����c�������������������C���s���t����S�)z:The system boot time expressed in seconds since the epoch.)rN���� boot_timerH���rH���rH���rI���r����1��s����r����c������������������C���s\���g�}�t����}d}|D�]B}|\}}}}}} |s.q||v�r:d}t�||||| �} |��| ��q|�S�)z:Return currently connected users as a list of namedtuples.)z:0.0z:0� localhost)rN����usersr���Zsuserrw���)ry���r����r����r����r2����tty�hostnameZtstampZuser_processr����r����rH���rH���rI���r����6��s����r����c�������������������C���s���dd��t��tt����D��S�)z7Returns a list of PIDs currently running on the system.c�����������������S���s���g�|�]}|����rt|��qS�rH���)�isdigitr[���rd���rH���rH���rI���rg���P��rh���zpids.<locals>.<listcomp>)rE����listdirr���r���rH���rH���rH���rI����pidsN��s����r����c�����������������C���s ���t��|��S�)z&Check for the existence of a unix pid.)r���� pid_exists)r����rH���rH���rI���r����S��s����r����c��������������������s���t�������fdd��}|S�)z�Call callable into a try/except clause and translate ENOENT, EACCES and EPERM in NoSuchProcess or AccessDenied exceptions. c�������������� ������s����z��|�g|�R�i�|��W�S��t�tfyZ���t|�j�sDt|�j|�j��nt|�j|�j|�j��Y�nX�tyx���t |�j|�j��Y�n:�t y����|�jdkr�dt��v�r�t |�j|�j��n����Y�n0�d�S��Nr���)r���r���r����r����r����_namer����_ppidr���r ���rv���r����)�self�args�kwargs��funrH���rI����wrapper\��s���� z wrap_exceptions.<locals>.wrapper)� functools�wraps)r����r����rH���r����rI����wrap_exceptionsX��s����r����c�������������������@���s���e�Zd�ZdZg�d�Zdd��Zdd��Zdd��Zd d ��Ze e dd����Ze e d d����Ze e dd����Z e dd���Ze dd���Ze dd���Ze dd���Ze dd���Ze dd���Ze dd���Ze dd ���Ze d!d"���Ze d#d$���Ze d%d&���Ze d'd(���Ze d)d*���Ze d+d,���Ze d-d.���Ze d/d0���ZeZe d1d2���Ze d3d4���Z e d5d6���Z!d7d8��Z"e dHd:d;��Z#e$d<d=�Z%e$d<d>�Z&e d?d@���Z'e dAdB���Z(e dCdD���Z)e dIdFdG��Z*dES�)J�Processz1Wrapper class around underlying C implementation.)r����r����r�����_procfs_path�_cachec�����������������C���s���||�_�d�|�_d�|�_t��|�_d�S��N)r����r����r����r���r����)r����r����rH���rH���rI����__init__y��s����zProcess.__init__c�����������������C���s���t��d|�j|�jf���dS�)z+Raise NSP if the process disappeared on us.�%s/%sN)rE����statr����r�����r����rH���rH���rI���� _assert_alive��s����zProcess._assert_alivec�����������������C���s(���|�j��|���|�j�|���|�j�|���d�S�r����)�_proc_name_and_argsZcache_activate�_proc_basic_info� _proc_credr����rH���rH���rI���� oneshot_enter���s����zProcess.oneshot_enterc�����������������C���s(���|�j��|���|�j�|���|�j�|���d�S�r����)r����Zcache_deactivater����r����r����rH���rH���rI����oneshot_exit���s����zProcess.oneshot_exitc�����������������C���s���t��|�j|�j�S�r����)rN���Zproc_name_and_argsr����r����r����rH���rH���rI���r�������s����zProcess._proc_name_and_argsc�����������������C���sT���|�j�dkr,tj�d|�j|�j�f��s,t|�j���t�|�j�|�j�}t|�tt �ksPJ��|S�)Nr���z%s/%s/psinfo) r����rE���r>����existsr����r ���rN���Zproc_basic_info�len� proc_info_map)r����rl���rH���rH���rI���r�������s���� � zProcess._proc_basic_infoc�����������������C���s���t��|�j|�j�S�r����)rN���Z proc_credr����r����r����rH���rH���rI���r�������s����zProcess._proc_credc�����������������C���s���|�����d�S�r����)r����r����rH���rH���rI���r�������s����zProcess.namec�����������������C���s8���zt��d|�j|�jf��W�S��ty*���Y�n0�|�����dS�)Nz%s/%s/path/a.outrs���)rE����readlinkr����r����rv����cmdliner����rH���rH���rI����exe���s�����zProcess.exec�����������������C���s���|�����d��d�S�)Nr���rA���)r����rZ���r����rH���rH���rI���r�������s����zProcess.cmdlinec�����������������C���s���t��|�j|�j�S�r����)rN���Zproc_environr����r����r����rH���rH���rI���rQ������s����zProcess.environc�����������������C���s���|�����td��S�)Nr(����r����r����r����rH���rH���rI���r(������s����zProcess.create_timec�����������������C���s���|�����td��S�)Nr*���r����r����rH���rH���rI���r*������s����zProcess.num_threadsc�����������������C���s���|�����td��S�)Nr)���r����r����rH���rH���rI����nice_get���s����zProcess.nice_getc�����������������C���s&���|�j�dv�rt|�j�|�j��t�|�j�|�S�)N)r���r���)r����r ���r����� cext_posix�setpriority)r�����valuerH���rH���rI����nice_set���s���� zProcess.nice_setc�����������������C���s���|�����td��|�_|�jS�)Nr%���)r����r����r����r����rH���rH���rI���r%������s����zProcess.ppidc�����������������C���s^���z|�����\}}}}}}W�n6�tyN���|����td��}|����td��}d�}Y�n0�t�|||�S�)Nr-���r.����r����r ���r����r����r���Zpuids)r�����real� effective�saved�_rH���rH���rI����uids���s���� zProcess.uidsc�����������������C���s^���z|�����\}}}}}}W�n6�tyN���|����td��}|����td��}d�}Y�n0�t�|||�S�)Nr/���r0���r����)r����r����r����r����r����rH���rH���rI����gids���s���� zProcess.gidsc�������������� ���C���s\���zt��|�j|�j�}W�n<�tyP�}�z$|jtjkr:ts:d}n��W�Y�d�}~n d�}~0�0�tj |��S�)N)���������r����r����r����) rN���Zproc_cpu_timesr����r����rv����errno� EOVERFLOW� IS_64_BITr���r4���)r�����timesr{���rH���rH���rI���rm������s����zProcess.cpu_timesc�����������������C���s���t��|�j|�j�S�r����)rN���Zproc_cpu_numr����r����r����rH���rH���rI����cpu_num��s����zProcess.cpu_numc�������������� ���C���sz���|�j�}d}t|����td���}|tjkrjdD�]<}zt�d||�j|f��W���S��t yf���d}Y�q,Y�q,0�q,|rv|�� ���d�S�)NFr,���)r���r���r�������z %s/%d/path/%dT)r����r����r����r����rN���ZPRNODEVrE���r����r����r���r����)r�����procfs_path� hit_enoentr����rf���rH���rH���rI����terminal��s ����� � zProcess.terminalc�����������������C���sJ���|�j�}zt�d||�jf��W�S��tyD���t�d||�jf���Y�d�S�0�d�S�)Nz%s/%s/path/cwdr����)r����rE���r����r����r���r����)r����r����rH���rH���rI����cwd��s����zProcess.cwdc�����������������C���s2���|�����}|td��d�}|td��d�}t||�S�)Nr&���i���r'���)r����r����r<���)r����rl���r&���r'���rH���rH���rI����memory_info#��s����zProcess.memory_infoc�����������������C���s���|�����td��}t�|d�S�)Nr+����?)r����r����� PROC_STATUSES�get)r�����coderH���rH���rI���r+���,��s����zProcess.statusc����������� ������C���s����|�j�}g�}t�d||�jf��}d}|D�]�}t|�}zt�|�j||�\}}W�n^�ty��}�zF|jtj krvt svW�Y�d�}~q&|jtjkr�d}W�Y�d�}~q&��W�Y�d�}~q&d�}~0�0�t� |||�} |�| ��q&|r�|�����|S�)Nz %s/%d/lwpFT)r����rE���r����r����r[���rN���Zquery_process_thread�EnvironmentErrorr����r����r�����ENOENTr���Zpthreadrw���r����) r����r����rl���Ztidsr�����tid�utimeZstimer{���r����rH���rH���rI����threads2��s,�����zProcess.threadsc�������������� ���C���s����g�}d}|�j�}d||�jf�}t�d||�jf��D�]f}tj�||�}tj�|�r0zt�|�}W�n�tyv���d}Y�q0Y�q00�t |�r0|� t�|t |����q0|r�|�����|S�)NFz %s/%d/pathz%s/%d/fdT)r����r����rE���r����r>���r�����islinkr����r���r ���rw���r���Z popenfiler[���r����)r����ry���r����r����Zpathdirr����r>����filerH���rH���rI���� open_filesS��s"���� zProcess.open_filesc�����������������c���s(��d|�}t�j|dt�jt�jd�}|���\}}trDdd��||fD��\}}|jdkr�d|���v�rht|�j|�j ��d|���v�r�t |�j|�j ��td ||f���|�d �dd��}t |�D�]v\}}|���}|�d �r�|�dd�d�} ||d�����} | dkr�tj} n| dk�rtj} nd} dtj| | dtjfV��q�dS�)z<Get UNIX sockets used by process by parsing 'pfiles' output.z pfiles %sT)�shellrL���r]���c�����������������S���s���g�|�]}|��tjj��qS�rH���)rT���rU���rL���rV���rd���rH���rH���rI���rg���q��s����z-Process._get_unix_sockets.<locals>.<listcomp>r���zpermission deniedzno such processz%r command error %srM���r���Nzsockname: AF_UNIXrA����SOCK_STREAM� SOCK_DGRAMr|���rs���)rO���rP���rR���rS���r���rW����lowerr ���r����r����r���rX���rZ���� enumerate�lstrip� startswithrY����socketr����r����ZAF_UNIXr���� CONN_NONE)r����r�����cmdr\���rL���r]���r^����ir_���r>����typerH���rH���rI����_get_unix_socketsh��s6������ zProcess._get_unix_sockets�inetc�����������������C���sP���t�||�jd�}|s(t�d|�j|�jf���|dv�rL|�dd��|��|�j�D����|S�)N)r����r����)rx���r}���c�����������������S���s���g�|�]}t�j|���qS�rH���)r���r����)re���ZconnrH���rH���rI���rg������rh���z'Process.connections.<locals>.<listcomp>)r����r����rE���r����r�����extendr����)r����r����rl���rH���rH���rI����connections���s���� �zProcess.connectionsZmmapzpath rss anon lockedzaddr perms path rss anon lockedc�����������������C���s0��dd��}|�j�}g�}zt�|�j|�}W�nF�tyj�}�z.|jtjkrTtsTg�W��Y�d�}~S���W�Y�d�}~n d�}~0�0�d}|D�]�}|\}} } }}} }||| �}|�d��szt � d||�j|f��}W�nJ�t�y�}�z0|jtjkr�d||�j|f�}d}n��W�Y�d�}~n d�}~0�0�|�|| ||| |f��qt|�r,|�� ���|S�)Nc�����������������S���s0���dt�|��dd����d�t�|�dd����d�f�S�)Nz%s-%sr����L)�hexrY���)�start�endrH���rH���rI����toaddr���s�����z#Process.memory_maps.<locals>.toaddrF�[z %s/%s/path/%sT)r����rN���Zproc_memory_mapsr����rv���r����r����r����r����rE���r����r����rw���r����)r����r����r����ry���r����r{���r����r����r����ZaddrsizeZpermr����r&���Zanonr?���rH���rH���rI����memory_maps���s6���� �zProcess.memory_mapsc�����������������C���s���t�t�d|�j|�jf���S�)Nz%s/%s/fd)r����rE���r����r����r����r����rH���rH���rI����num_fds���s����zProcess.num_fdsc�����������������C���s���t�jt�|�j|�j���S�r����)r���ZpctxswrN���Zproc_num_ctx_switchesr����r����r����rH���rH���rI����num_ctx_switches���s�����zProcess.num_ctx_switchesNc�����������������C���s���t��|�j||�j�S�r����)r���Zwait_pidr����r����)r�����timeoutrH���rH���rI����wait���s����zProcess.wait)r����)N)+�__name__� __module__�__qualname__�__doc__� __slots__r����r����r����r����r����r���r����r����r����r����r����r����rQ���r(���r*���r����r����r%���r����r����rm���r����r����r����r����Zmemory_full_infor+���r����r����r����r����r���Znt_mmap_groupedZnt_mmap_extr����r����r����r����rH���rH���rH���rI���r����t��s���� . r����)F)r|���)sr��r����r����rE���r����rO���rU����collectionsr���r���rs���r���r���r���r����r���rN���r ���r ���r���r���r ���r���r���r���r���r���r���Z_compatr���r���r���r���r���Z__extra__all__ZgetpagesizerG���ZAF_LINK�maxsizer����r���r���ZSSLEEPZSTATUS_SLEEPINGZSRUNZSTATUS_RUNNINGZSZOMBZ STATUS_ZOMBIEZSSTOPZSTATUS_STOPPEDZSIDLZSTATUS_IDLEZSONPROCZSWAITZSTATUS_WAITINGr����ZTCPS_ESTABLISHEDZCONN_ESTABLISHEDZ TCPS_SYN_SENTZ CONN_SYN_SENTZ TCPS_SYN_RCVDZ 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_LISTENZTCPS_CLOSINGZCONN_CLOSINGZPSUTIL_CONN_NONEr����Z TCPS_IDLEZ TCPS_BOUNDr�����dictr����r1���r4���r7���r<���Zpfullmemr=���r�����_fieldsr@���rJ���rb���rm���ri���rp���rq���rr���Zdisk_io_countersru���rt���Znet_io_countersZnet_if_addrsr����r����r����r����r����r����r�����objectr����rH���rH���rH���rI����<module>���s���� ������ & ! %