转载请注明出处:http://blog.csdn.net/l1028386804/article/details/78959020
获得当前系统的进程信息,可以让运维人员得知应用程序的运行状态,包括进程的启动时间、查看或设置CPU亲和度、内存使用率、IO信息、socket连接、线程数等,这些信息可以呈现出指定进程是否存活、资源利用情况,为开发人员的代码优化、问题定位提供很好的数据参考。
# -*- coding:UTF-8 -*-
'''
获取当前系统的进程信息
Created on 2018年1月3日
@author: liuyazhuang
'''
import psutil
#列出所有进程的PID
print psutil.pids()
#实例化一个Process对象,参数为一进程PID
p = psutil.Process(364)
print p.name()
#获取进行bin的路径
print p.exe()
#获取进程工作目录绝对路径
print p.cwd()
#进程的状态
print p.status()
#进程创建的时间
print p.create_time()
#进程uid信息
print p.uids()
#进程gid信息
print p.gids()
#进程CPU时间信息,包括user、system两个CPU时间
print p.cpu_times()
#获取进程cpu的亲和度
print p.cpu_affinity()
#获取进程内存利用率
print p.memory_percent()
#进程内存rss、vms信息
print p.memory_info()
#进程IO信息,包括读写IO数及字节数
print p.io_counters()
#获取打开进程socket的namedutples列表,包括fs、family、laddr等信息
print p.connections()
#进程开启的线程数
print p.num_threads()
# -*- coding:UTF-8 -*-
'''
获取用户启动的应用程序进程信息
Created on 2018年1月3日
@author: liuyazhuang
'''
import psutil
from subprocess import PIPE
from sys import stdout
#启动应用程序,跟踪该应用程序的进程信息
p = psutil.Popen(["D:\\Program Files\\Python27\\python.exe", "-c", "print 'hello'"], stdout = PIPE)
print p.name()
print p.username()
print p.communicate()
try:
print p.cpu_times()
except:
print "获取不到p.cpu_times()"