Sindbad~EG File Manager
3
�f � @ s: d dl Z d dlZd dlmZmZmZ G dd� dee�ZdS )� N)�Plugin�IndependentPlugin� PluginOptc
@ sl e Zd ZdZdZdZedddd�edd d
d�edd dd�ed
dedd�eddedd�gZdd� Z dd� Z
dS )�Processzprocess informationZprocess�system�lsofTzcollect info on all open files)�default�desczlsof-threadsFz,collect threads' open file info if supported�smapszcollect /proc/*/smaps files�samples� z"number of iotop samples to collect)r Zval_typer �numprocsi z*number of process to collect /proc data ofc C sd d}d}d}|d7 }| j ddg� dd� | jd �D �}| jd
�rR|d | jd
�� }x4|D ],}| j d| d| d
| d| d| g� qXW | jd�r�| j d� | jdddddddgdd� | jddd� | jd�r�| jddd d!dd"� | jd#�r�| jd$d d!d%� | jd&d'gd(d)� | jd*||f d*||f g� | jd+��rR| jd,| jd+� d-d.� | jd/d0g� d S )1Nzps axoz3pid,ppid,user,group,lwp,nlwp,start_time,comm,cgroupz3flags,state,uid,pid,ppid,pgid,sid,cls,pri,psr,addr,zsz,wchan:20,lstart,tty,time,cmdz/proc/sched_debugz
/proc/statc S s g | ]}t jd |�r|�qS )z[0-9])�re�match)�.0�p� r �/usr/lib/python3.6/process.py�
<listcomp>- s z!Process.setup.<locals>.<listcomp>z/procr
z/proc/%s/statusz/proc/%s/cpusetz/proc/%s/oom_*z/proc/%s/stackz/proc/%s/limitsr
z/proc/[0-9]*/smapsz
ps auxwwwmZpsZps_auxZps_auxwwZ ps_auxwwwZ
ps_auxwwwmZ ps_auxcww� )�root_symlink�tags�priorityz
pstree -lpZpstree)r r zlsof +M -n -l -c ''� �2 )r �timeoutr r zlsof-threadsz
lsof +M -n -l)r r z ps alxwwwzps -elfLT)Z
cmd_as_tagz%s %sr ziotop -b -o -d 0.5 -t -n %s�d )r z#pidstat -p ALL -rudvwsRU --human -hzpidstat -tl)Z
add_copy_spec�listdirZ
get_optionZadd_cmd_output)�selfZps_axoZ
ps_group_optsZ
ps_sched_optsZprocs�procr r r �setup! sT
z
Process.setupc C s� | j d���}| jjjs$|jd� d S | jd�}i }i }|d dksZ|jd|d � �� d S xh|d j� D ]X}|j� j� }|d }|d }| j |�s�qh||kr�| jjj
|�||<