Viewing File: /opt/alt/python35/lib64/python3.5/site-packages/psutil/__pycache__/_pssunos.cpython-35.pyc



Cs[jc@sdZddlZddlZddlZddlZddlZddlmZddlmZddl	m
Z
ddl	mZddl	mZ
dd	l	mZdd
l
mZddl
mZddl
mZdd
l
mZddl
mZddl
mZddlmZddlmZddlmZddlmZddlmZdddgZejdZe
j Z ej!dkkZ"dZ#dZ$ej%e
j&ej'e
j(ej)e
j*ej+e
j,ej-e
j.ej/e
j(ej0e
j1iZ2ej3e
j4ej5e
j6ej7e
j8ej9e
j:ej;e
j<ej=e
j>ej?e
j@ejAe
jBejCe
jDejEe
jFejGe
jHejIe
jJejKe#ejLe$iZMeNddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1ZOed2d3d4d5d6gZPed7d3d4d8d9gZQed:d;d<d=d>d?gZRed@ddgZSeSZTedAdBddCdDgZUedEdFdGjVeUjWZXdHdIZYdJdKZZdLdMZ[dNdOZ\dPdQZ]dRdSZ^dTdUZ_dVdWZ`ejaZaejbZbdXdYdZZcejdZde
jeZedld[d\Zfd]d^Zgd_d`ZhdadbZidcddZjdedfZkdgdhZlGdidjdjemZndS)mz'Sun OS Solaris platform implementation.N)
namedtuple)AF_INET)_common)_psposix)
_psutil_posix)
_psutil_sunos)AF_INET6)
isfile_strict)memoize_when_activated)sockfam_to_enum)socktype_to_enum)
usage_percent)b)PY3)AccessDenied)
NoSuchProcess)
ZombieProcess	CONN_IDLE
CONN_BOUNDPROCFS_PATHSC_PAGE_SIZE ZIDLEZBOUNDppidrssvmscreate_timenicenum_threadsstatusttynruideuid	gid
egid	scputimesusersystemZidleZiowait	pcputimes
children_userchildren_systemsvmemtotalZ	availablepercentusedfreepmem
pmmap_groupedpathZ	anonymouslocked	pmmap_extzaddr perms  cCstjdjS)z+Return updated psutil.PROCFS_PATH constant.Zpsutil)sysmodulesrrBrB/_pssunos.pyget_procfs_pathusrDcCs_tjdt}tjdt}}||}t||dd}t|||||S)zReport virtual memory metrics.
SC_PHYS_PAGESSC_AVPHYS_PAGESround_r)ossysconf	PAGE_SIZErr5)r6r9Zavailr8r7rBrBrCvirtual_memorys

rKc
Csutj\}}tjddtjdddgdtj}|j\}}trn|j	t
jj}|j
dkrtd|j
|jjd	d
d}|stdd}}xd|D]\}|j}|dd\}	}
|tt|	d7}|tt|
d7}qW||}t||dd
}tj|||||t|tS)zReport swap memory metrics.z/usr/bin/envzPATH=/usr/sbin:/sbin:%sPATHZswapz-lstdoutrz'swap -l' failed (retcode=%s)
rNzno swap device(s) configuredrirG)cextZswap_mem
subprocessPopenrHenvironPIPEcommunicaterdecoder@rMencoding
returncodeRuntimeErrorstripsplitintrrZsswaprJ)
sinZsoutprMstderrlinesr6r9linetfr8r7rBrBrCswap_memorys,


rdcCs)tj}tddt|DS)z-Return system-wide CPU times as a named tuplecSsg|]}t|qSrB)sum).0xrBrBrC
<listcomp>s	zcpu_times.<locals>.<listcomp>)rP
per_cpu_timesr/zip)retrBrBrC	cpu_timessrlcCstj}dd|DS)z5Return system per-CPU times as a list of named tuplescSsg|]}t|qSrB)r/)rfrgrBrBrCrhs	z!per_cpu_times.<locals>.<listcomp>)rPri)rkrBrBrCrisricCs.ytjdSWntk
r)dSYnXdS)z0Return the number of logical CPUs in the system.SC_NPROCESSORS_ONLNN)rHrI
ValueErrorrBrBrBrCcpu_count_logicals
rocCs
tjS)z1Return the number of physical CPUs in the system.)rPZcpu_count_physrBrBrBrCcpu_count_physicalsrpcCs4tj\}}}}d}tj||||S)z*Return various CPU stats as a named tuple.r)rP	cpu_statsrZ	scpustats)Zctx_switchesZ
interruptsZsyscallsZtrapsZsoft_interruptsrBrBrCrqsrqFc	Csg}tj}xo|D]g}|\}}}}|dkrCd}|s[t|js[qtj||||}|j|qW|S)zReturn system disk partitions.Znone)rPdisk_partitions
disk_usager6rZ	sdiskpartappend)	allretlistZ
partitions	partitionZdeviceZ
mountpointZfstypeZoptsZntuplerBrBrCrss
rsc	Cstjj}|dkr+|jdd||krctd|djdd|Dftj|\}}tj|}t}x|D]}|\}}	}
}}}
}|	|krq|
|krq|	t	t
fkr|rtj|}|rtj|}t|
}
t
|	}	t|
}
|d	krbtj||	|
|||
|}ntj||	|
|||
}|j|qWt|S)
zReturn 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).
    runixrz+invalid %r kind argument; choose between %sz, cSsg|]}t|qSrB)repr)rfrgrBrBrCrhs	z#net_connections.<locals>.<listcomp>r{)rZ	conn_tmapcopypoprnjoinrPnet_connectionssetrr	addrTCP_STATUSESrr
Zsconnpconnaddlist)kind_pidZcmapfamiliestypesrawlistrkitemfdZfamZtype_laddrraddrr#pidntrBrBrCrs8&	

$rcCsytj}xf|jD]X\}}|\}}}}ttdrUtj|}tj||||||<qW|S)z)Get NIC stats (isup, duplex, speed, mtu).	NicDuplex)rPnet_if_statsitemshasattrrrZ	snicstats)rknamerZisupduplexZspeedZmturBrBrCrs rcCs
tjS)z:The system boot time expressed in seconds since the epoch.)rP	boot_timerBrBrBrCr-srcCsg}tj}d}xi|D]a}|\}}}}}}	|sFq||krXd}tj|||||	}
|j|
qW|S)z:Return currently connected users as a list of namedtuples.:0.0:0	localhost)rr)rPusersrZsuserru)rwrrrr0ttyhostnameZtstampZuser_processrrrBrBrCr2s
rcCs#ddtjttDS)z7Returns a list of PIDs currently running on the system.cSs(g|]}|jrt|qSrB)isdigitr\)rfrgrBrBrCrhLs	zpids.<locals>.<listcomp>)rHlistdirrrDrBrBrBrCpidsJsrcCs
tj|S)z&Check for the existence of a unix pid.)r
pid_exists)rrBrBrCrOsrcsfdd}|S)zCall callable into a try/except clause and translate ENOENT,
    EACCES and EPERM in NoSuchProcess or AccessDenied exceptions.
    cs	y|||SWntk
r}z|jdkrbdtkr_t|j|jn|jtjtjfkrt|jst	|j|jnt
|j|j|j|jtjtj
fkrt|j|jWYdd}~XnXdS)Nr)EnvironmentErrorrrr_nameerrnoENOENTZESRCHrrr_ppidEPERMZEACCES)selfargskwargserr)funrBrCwrapperYsz wrap_exceptions.<locals>.wrapperrB)rrrB)rrCwrap_exceptionsTsrc@sheZdZdZddddgZddZdd	Zd
dZedd
Z	eddZ
eddZeddZ
eddZeddZeddZeddZeddZeddZed d!Zed"d#Zed$d%Zed&d'Zed(d)Zed*d+Zed,d-Zed.d/Zed0d1ZeZed2d3Zed4d5Zed6d7Z d8d9Z!ed:d;d<Z"e#d=d>Z$e#d=d?Z%ed@dAZ&edBdCZ'edDdEZ(edFdGdHZ)dFS)IProcessz1Wrapper class around underlying C implementation.rrr_procfs_pathcCs+||_d|_d|_t|_dS)N)rrrrDr)rrrBrBrC__init__us			zProcess.__init__cCs+|jj|jj|jjdS)N)_proc_name_and_argsZcache_activate_proc_basic_info
_proc_cred)rrBrBrC
oneshot_enter{s

zProcess.oneshot_entercCs+|jj|jj|jjdS)N)rZcache_deactivaterr)rrBrBrConeshot_exits

zProcess.oneshot_exitcCstj|j|jS)N)rPZproc_name_and_argsrr)rrBrBrCrszProcess._proc_name_and_argscCs:tj|j|j}t|ttks6t|S)N)rPZproc_basic_inforrlen
proc_info_mapAssertionError)rrkrBrBrCrszProcess._proc_basic_infocCstdd}||S)NcSstj|j|jS)N)rP	proc_credrr)rrBrBrCrsz%Process._proc_cred.<locals>.proc_cred)r)rrrBrBrCrszProcess._proc_credcCs|jdS)Nr)r)rrBrBrCrszProcess.namecCsDy!tjd|j|jfSWntk
r5YnX|jdS)Nz%s/%s/path/a.outrr)rHreadlinkrrOSErrorcmdline)rrBrBrCexes

zProcess.execCs|jdjdS)Nrr?)rr[)rrBrBrCrszProcess.cmdlinecCstj|j|jS)N)rPZproc_environrr)rrBrBrCrSszProcess.environcCs|jtdS)Nr)rr)rrBrBrCrszProcess.create_timecCs|jtdS)Nr!)rr)rrBrBrCr!szProcess.num_threadscCs|jtdS)Nr)rr)rrBrBrCnice_getszProcess.nice_getcCs7|jdkr$t|j|jtj|j|S)Nrr)rr)rrr
cext_posixsetpriority)rvaluerBrBrCnice_setszProcess.nice_setcCs|jtd|_|jS)Nr)rrr)rrBrBrCrszProcess.ppidcCsxy"|j\}}}}}}Wn@tk
rd|jtd}|jtd}d}YnXtj|||S)Nr'r))rrrrrpuids)rreal	effectivesaved_rBrBrCuidss"
zProcess.uidscCsxy"|j\}}}}}}Wn@tk
rd|jtd}|jtd}d}YnXtj|||S)Nr+r-)rrrrrr)rrrrrrBrBrCgidss"
zProcess.gidscCsvytj|j|j}WnJtk
rh}z*|jtjkrStrSd}nWYdd}~XnXtj	|S)N)rrrr)
rPZproc_cpu_timesrrrr	EOVERFLOW	IS_64_BITrr2)rtimesrrBrBrCrls	zProcess.cpu_timescCstj|j|jS)N)rPZproc_cpu_numrr)rrBrBrCcpu_numszProcess.cpu_numcCs|j}d}t|jtd}|tjkrxud
D]m}y!tjd||j|fSWq?t	k
r}z#|j
t
jkrd}w?WYdd}~Xq?Xq?W|rtjd	||jfdS)NFr%rrrz
%s/%d/path/%dTz%s/%s)rrrr)
rrrrrPZPRNODEVrHrrrrrstat)rprocfs_path
hit_enoentrrgrrBrBrCterminals 	
zProcess.terminalcCs|j}ytjd||jfSWnXtk
r}z8|jtjkrltjd||jfdSWYdd}~XnXdS)Nz%s/%s/path/cwdz%s/%s)rrHrrrrrr)rrrrBrBrCcwds	zProcess.cwdcCs=|j}|tdd}|tdd}t||S)Nrir)rrr:)rrkrrrBrBrCmemory_infoszProcess.memory_infocCs$|jtd}tj|dS)Nr#?)rr
PROC_STATUSESget)rcoderBrBrCr#$szProcess.statusc
Cs|j}g}tjd||jf}d}x|D]}t|}y"tj|j||\}}Wn_tk
r}z?|jtj	krt
rw8|jtjkrd}w8WYdd}~Xq8Xtj
|||}	|j|	q8W|rtjd||jf|S)Nz	%s/%d/lwpFTz%s/%s)rrHrrr\rPZquery_process_threadrrrrrrZpthreadrur)
rrrkZtidsrtidutimeZstimerrrBrBrCthreads*s*	
zProcess.threadsc	Csg}d}|j}d||jf}xtjd||jfD]}tjj||}tjj|rEytj|}WnCtk
r}z#|j	t	j
krd}wEWYdd}~XqEXt|rE|jt
j|t|qEW|rtjd||jf|S)NFz
%s/%d/pathz%s/%d/fdTz%s/%s)rrrHrr<r~islinkrrrrr
rurZ	popenfiler\r)	rrwrrZpathdirrr<filerrBrBrC
open_filesLs&	##zProcess.open_filesccsd|}tj|dddtjdtj}|j\}}trhdd||fD\}}|jdkrd	|jkrt|j|j	d
|jkrt
|j|j	td||f|jdd
d}xt
|D]\}}|j}|jdr|jdd
d
}	||d
j}
|
dkrjtj}
n|
dkrtj}
nd}
dtj|
|	dtjfVqWdS)z<Get UNIX sockets used by process by parsing 'pfiles' output.z	pfiles %sshellTrMr_cSs%g|]}|jtjjqSrB)rVr@rMrW)rfrgrBrBrCrhns	z-Process._get_unix_sockets.<locals>.<listcomp>rzpermission deniedzno such processz%r command error
%srNrNzsockname: AF_UNIXr?SOCK_STREAM
SOCK_DGRAMrrrr{r{)rQrRrTrUrrXlowerrrrrrYr[	enumeratelstrip
startswithrZsocketrrAF_UNIXr	CONN_NONE)rrcmdr^rMr_r`irar<typerBrBrC_get_unix_socketses2
	zProcess._get_unix_socketsZinetcCsnt|d|j}|s8tjd|j|jf|dkrj|jdd|j|jD|S)Nrz%s/%srvrycSsg|]}tj|qSrB)rr)rfconnrBrBrCrhs	z'Process.connections.<locals>.<listcomp>)rvry)rrrHrrextendr)rrrkrBrBrCconnectionsszProcess.connectionsZmmapzpath rss anon lockedzaddr perms path rss anon lockedc$Csdd}|j}g}ytj|j|}WnEtk
r{}z%|jtjkrftrfgSWYdd}~XnXd}x|D]}|\}}	}
}}}
}|||	}|jdsGy#t	j
d||j|f}WnYtk
rF}z9|jtjkr1d||j|f}d}nWYdd}~XnX|j||
|||
|fqW|rt	j
d||jf|S)NcSs@dt|ddjdt|ddjdfS)Nz%s-%srL)hexrZ)startendrBrBrCtoaddrsz#Process.memory_maps.<locals>.toaddrF[z
%s/%s/path/%sTz%s/%s)rrPZproc_memory_mapsrrrrrrrHrrrur)rrrrwrrrrrZaddrsizeZpermrrZanonr=rBrBrCmemory_mapss4	
	#zProcess.memory_mapscCs#ttjd|j|jfS)Nz%s/%s/fd)rrHrrr)rrBrBrCnum_fdsszProcess.num_fdscCstjtj|j|jS)N)rZpctxswrPZproc_num_ctx_switchesrr)rrBrBrCnum_ctx_switchesszProcess.num_ctx_switchesNcCstj|j||jS)N)rZwait_pidrr)rtimeoutrBrBrCwaitszProcess.wait)*__name__
__module____qualname____doc__	__slots__rrrrrrrrrrrrSrr!rrrrrrlrrrrZmemory_full_infor#rrrrrZnt_mmap_groupedZnt_mmap_extrrrrrBrBrBrCrpsL



" 0rlr{)orrrHrrQr@collectionsrrrrrrrrrrPr	r
rrr
rZ_compatrr_exceptionsrrrZ__extra__all__rIrJZAF_LINKmaxsizerrrZSSLEEPZSTATUS_SLEEPINGZSRUNZSTATUS_RUNNINGZSZOMBZ
STATUS_ZOMBIEZSSTOPZSTATUS_STOPPEDZSIDLZSTATUS_IDLEZSONPROCZSWAITZSTATUS_WAITINGrZTCPS_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_LISTENZTCPS_CLOSINGZCONN_CLOSINGZPSUTIL_CONN_NONErZ	TCPS_IDLEZ
TCPS_BOUNDrdictrr/r2r5r:Zpfullmemr;r~_fieldsr>rDrKrdrlrirorprqZdisk_io_countersrtrsZnet_io_countersZnet_if_addrsrrrrrrrobjectrrBrBrBrC<module>s				
&	
				$
Back to Directory File Manager