MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / get_process_info_by_pid

Method get_process_info_by_pid

class/projectModel/nodejsModel.py:1861–1895  ·  view source on GitHub ↗

@name 获取进程信息 @author hwliang<2021-08-12> @param pid: int<进程id> @return dict

(self,pid)

Source from the content-addressed store, hash-verified

1859
1860
1861 def get_process_info_by_pid(self,pid):
1862 ''&#x27;
1863 @name 获取进程信息
1864 @author hwliang<2021-08-12>
1865 @param pid: int<进程id>
1866 @return dict
1867 ''&#x27;
1868 process_info = {}
1869 try:
1870 if not os.path.exists('/proc/{}'.format(pid)): return process_info
1871 p = psutil.Process(pid)
1872 status_ps = {'sleeping':'睡眠','running':'活动'}
1873 with p.oneshot():
1874 p_mem = p.memory_full_info()
1875 if p_mem.uss + p_mem.rss + p_mem.pss + p_mem.data == 0: return process_info
1876 p_state = p.status()
1877 if p_state in status_ps: p_state = status_ps[p_state]
1878 # process_info['exe'] = p.exe()
1879 process_info['name'] = p.name()
1880 process_info['pid'] = pid
1881 process_info['ppid'] = p.ppid()
1882 process_info['create_time'] = int(p.create_time())
1883 process_info['status'] = p_state
1884 process_info['user'] = p.username()
1885 process_info['memory_used'] = p_mem.uss
1886 process_info['cpu_percent'] = self.get_cpu_precent(p)
1887 process_info['io_write_bytes'],process_info['io_read_bytes'] = self.get_io_speed(p)
1888 process_info['connections'] = self.format_connections(p.connections())
1889 process_info['connects'] = self.get_connects(pid)
1890 process_info['open_files'] = self.list_to_dict(p.open_files())
1891 process_info['threads'] = p.num_threads()
1892 process_info['exe'] = ' '.join(p.cmdline())
1893 return process_info
1894 except:
1895 return process_info
1896
1897
1898 def get_io_speed(self,p):

Callers 3

get_project_load_infoMethod · 0.95
get_pm2_load_infoMethod · 0.95
get_pm2_load_info_newMethod · 0.95

Calls 10

get_cpu_precentMethod · 0.95
get_io_speedMethod · 0.95
format_connectionsMethod · 0.95
get_connectsMethod · 0.95
list_to_dictMethod · 0.95
existsMethod · 0.45
formatMethod · 0.45
statusMethod · 0.45
nameMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected