重庆巴南区网站开发公司,wordpress自动加内链,九江做网站的公司,房产管理系统psutil是什么psutil是一个能够获取系统信息(包括进程、CPU、内存、磁盘、网络等)的Python模块。主要用来做系统监控#xff0c;性能分析#xff0c;进程管理#xff0c;像glances也是基于psutil写成的。在不了解这个模块之前#xff0c;我都是直接用subprocess去直接执行系…psutil是什么psutil是一个能够获取系统信息(包括进程、CPU、内存、磁盘、网络等)的Python模块。主要用来做系统监控性能分析进程管理像glances也是基于psutil写成的。在不了解这个模块之前我都是直接用subprocess去直接执行系统命令来取得进程信息但是这样会多写很多系统命令行。psutil可以让我们更方便地获取进程信息。psutil获取进程信息psutil可以获取进程信息示例如下 p psutil.Process(27050) ppsutil.Process(pid27050, namepython, started10:45:29) p.name() #进程名python p.exe() #进程的bin路径/usr/bin/python3.6 p.cwd() #进程的工作目录/home/len/scripts/python/designmode p.cmdline() #执行进程的命令[python] p.pid #进程的id27050 p.ppid() #父进程的id16586 p.children() #进程的子进程[] p.parent() #进程的父进程psutil.Process(pid16586, namebash, started09:08:15) p.parents() #进程的所有父进程可以看到最后是id为1的systemd[psutil.Process(pid16586, namebash, started09:08:15), psutil.Process(pid16585, namesshd, started09:08:15), psutil.Process(pid16582, namesshd, started09:08:14), psutil.Process(pid2892, namesshd, started2019-06-21 14:53:40), psutil.Process(pid1, namesystemd, started2019-06-21 14:53:21)] p.status() #进程状态running p.username() #进程用户名len p.create_time() #进程创建的时间戳1564022729.45 p.terminal() #执行进程的终端/dev/pts/0 p.uids() #执行进程的用户idpuids(real1000, effective1000, saved1000) p.gids() #执行进程的组idpgids(real1000, effective1000, saved1000) p.cpu_times() #进程占用的cpu时间pcputimes(user0.35, system0.08, children_user0.0, children_system0.0) p.cpu_percent(interval1.0) #进程占用的cpu比率0.0 p.cpu_affinity() #进程cpu亲和度[0] p.cpu_num() #进程占用cpu个数0 p.memory_info() #进程内存信息pmem(rss10539008, vms176517120, shared3698688, text4096, lib0, data6397952, dirty0) p.memory_full_info() #进程完整内存信息pfullmem(rss10539008, vms176517120, shared3698688, text4096, lib0, data6397952, dirty0, uss9244672, pss9340928, swap0) p.memory_percent() #进程占用内存比率0.5467627733813867 p.threads() #进程的线程[pthread(id27050, user_time0.35, system_time0.08)] p.nice() #进程的优先度0如果是普通用户因为权限不够在获取一些系统进程的信息时可能会报错如下 p psutil.Process(1) ppsutil.Process(pid1, namesystemd, started2019-06-21 14:53:21) p.cwd()Traceback (most recent call last):File /usr/lib64/python3.6/site-packages/psutil/_pslinux.py, line 1513, in wrapperreturn fun(self, *args, **kwargs)File /usr/lib64/python3.6/site-packages/psutil/_pslinux.py, line 1858, in cwdreturn readlink(%s/%s/cwd % (self._procfs_path, self.pid))File /usr/lib64/python3.6/site-packages/psutil/_pslinux.py, line 213, in readlinkpath os.readlink(path)PermissionError: [Errno 13] Permission denied: /proc/1/cwdDuring handling of the above exception, another exception occurred:Traceback (most recent call last):File , line 1, in File /usr/lib64/python3.6/site-packages/psutil/__init__.py, line 828, in cwdreturn self._proc.cwd()File /usr/lib64/python3.6/site-packages/psutil/_pslinux.py, line 1516, in wrapperraise AccessDenied(self.pid, self._name)psutil.AccessDenied: psutil.AccessDenied (pid1, namesystemd)可以看到psutil跟大部分监控命令一样都是从/proc/1/cwd里获取信息的。模拟ps psutil.test()USER PID %MEM VSZ RSS NICE STATUS START TIME CMDLINEroot 1 0.2 123.1M 3.8M sleep Jun21 10:07 /usr/lib/systemd/systemd --switched-root --system --deserialize 22root 2 0.0 0.0B 0.0B sleep Jun21 00:00 kthreadd...len 26598 0.3 164.4M 6.2M sleep Jul02 00:00 w3m baidu.comlen 27050 0.6 168.3M 10.2M runni 10:45 00:00 python根据进程名获取pid for p in psutil.process_iter(attrs[pid, name]):... if kw in p.info[name]:... print(p.info)...{name: kworker/0:0H, pid: 5}{name: kworker/0:1, pid: 785}{name: kworker/0:1H, pid: 1063}{name: kworker/0:2, pid: 1306}{name: kworker/0:0, pid: 1828}{name: kworker/u2:1, pid: 15677}{name: kworker/u2:2, pid: 17551}根据完整进程名获取pidfor p in psutil.process_iter():if my.cnf in .join(p.cmdline()):print(p.pid)结尾本文主要讲psutil进程部分其它的如内存、CPU、磁盘等都没有写到想详细了解psutil的可以访问psutil的github以获取更多信息。以上这篇Python使用psutil获取进程信息的例子就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持我们。本文标题: Python使用psutil获取进程信息的例子本文地址: http://www.cppcns.com/jiaoben/python/293454.html