Here is a simple python i've made:
import re,time,sys cpuNum=0 if len(sys.argv)==1: print "use pidcpu <pid1,pid2,..,pidn>" sys.exit(0) pids=sys.argv.pop() def getCpuTot(): global cpuNum f=open("/proc/stat","r") ln=f.read() f.close() #cpu 858286704 148088 54216880 117129864 2806189 5046 16997674 0 0 0 r=re.findall("cpu[\d\s]{1}\s+(\d+)\s(\d+)\s(\d+)\s(\d+)\s.*?",ln,re.DOTALL) cpuNum=len(r)-1 return int(r[0][0])+int(r[0][1])+int(r[0][2])+int(r[0][3]) def getPidCPU(pid): f=open("/proc/"+ str(pid) +"/stat","r") ln=f.readline() f.close() a=ln.split(" ") return int(a[13])+int(a[14]) cpu1=getCpuTot() cpupid1=[] for pid in pids.split(","): cpupid1.append(getPidCPU(pid)) time.sleep(1) cpu2=getCpuTot() cpupid2=[] for pid in pids.split(","): cpupid2.append(getPidCPU(pid)) i=0 for pid in pids.split(","): perc=int(cpuNum*(cpupid2[i]-cpupid1[i])*100/float(cpu2-cpu1)) i+=1 print pid,perc
topsufficient for your purposes?topis that it is too "dynamic" if you will, for my purposes. I need something like the linuxtimecommand, reporting cpu usage about that process only.