python psutil 进程cpu_python 模块psutil获取进程信息

获取进程信息

接续上篇《python 常用内建模块之psutil》安装psutil,并且获取一些基本信息,本篇介绍通过psutil获取到所有进程的详细信息:

1. 获取所有进程ID

print psutil.pids()

运行结果:

[3865, 3864, 3863, 3856, 3855, 3853, 3776, ..., 45, 44, 1, 0]

2. 获取指定进程ID=1689,其实就是当前pycharm交互环境

p = psutil.Process(1689)

# 进程名称

print p.name()

运行结果:

pycharm

3. 获取进程exe路径

p = psutil.Process(1689)

print p.exe()

运行结果:

/Applications/PyCharm.app/Contents/MacOS/pycharm

4. 获取进程工作目录

p = psutil.Process(1689)

print p.cwd()

运行结果:

/Applications/PyCharm.app/Contents/bin

5. 获取进程启动的命令行

p = psutil.Process(1689)

print p.cmdline()

运行结果:

['/Applications/PyCharm.app/Contents/MacOS/pycharm']

6. 获取父进程ID

p = psutil.Process(1689)

print p.ppid()

运行结果:

1

7. 获取父进程

p = psutil.Process(1689)

print p.parent()

运行结果:

psutil.Process(pid=1, name='lound', started='2018-08-12 09:13:10')

8. 获取子进程列表

p = psutil.Process(1689)

print p.children()

运行结果:

[psutil.Process(pid=30566, name='Python', started='14:52:04'), psutil.Process(pid=1755, name='fsnotifier', started='2018-08-12 12:17:23')]

9. 获取进程状态

p = psutil.Process(1689)

print p.status()

运行结果:

running

10. 获取进程用户名

p = psutil.Process(1689)

print p.username()

运行结果:

fby

11. 获取进程创建时间

p = psutil.Process(1689)

print p.create_time()

运行结果:

1565583434.66

12. 获取进程终端

p = psutil.Process(1689)

print p.terminal()

运行结果:

/dev/ttys002

13. 获取进程使用的CPU时间

p = psutil.Process(1689)

print p.cpu_times()

运行结果:

pcputimes(user=5228.817022976, system=2723.374170112, children_user=0.0, children_system=0.0)

14. 获取进程使用的内存

p = psutil.Process(1689)

print p.memory_info()

运行结果:

pmem(rss=875470848L, vms=10986835968L, pfaults=10496095, pageins=18513)

15. 获取进程打开的文件

p = psutil.Process(1689)

print p.open_files()

运行结果:

[]

16. 获取进程相关网络连接

p = psutil.Process(1689)

print p.connections()

运行结果:

[]

17. 获取进程的线程数量

p = psutil.Process(1689)

print p.num_threads()

运行结果:

1

18. 获取所有线程信息

p = psutil.Process(1689)

print p.threads()

运行结果:

[pthread(id=1, user_time=0.090318, system_time=0.062736)]

19. 获取进程环境变量

p = psutil.Process(1689)

print p.environ()

运行结果:

{'SHELL': '/bin/bash', 'PATH': '/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:...', 'PWD': '/Users/michael', 'LANG': 'zh_CN.UTF-8', ...}

20. 结束进程

p = psutil.Process(1689)

p.terminate()

运行结果:

Terminated: 15

和获取网络连接类似,获取一个root用户的进程需要root权限,启动Python交互环境或者.py文件时,需要sudo权限。

psutil还提供了一个test()函数,可以模拟出ps命令的效果:

import psutil

psutil.test()

运行结果:

USER PID %MEM VSZ RSS TTY START TIME COMMAND

root 0 24.0 74270628 2016380 ? Nov18 40:51 kernel_task

root 1 0.1 2494140 9484 ? Nov18 01:39 launchd

root 44 0.4 2519872 36404 ? Nov18 02:02 UserEventAgent

root 45 ? 2474032 1516 ? Nov18 00:14 syslogd

root 47 0.1 2504768 8912 ? Nov18 00:03 kextd

root 48 0.1 2505544 4720 ? Nov18 00:19 fseventsd

_appleeven 52 0.1 2499748 5024 ? Nov18 00:00 appleeventsd

root 53 0.1 2500592 6132 ? Nov18 00:02 configd

...

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值