54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
#!/bin/python
|
|
import os
|
|
import time
|
|
start = time.time()
|
|
pids = [pid for pid in os.listdir('/proc') if pid.isdigit()]
|
|
#pids = ['5960']
|
|
|
|
tty = os.open('/dev/tty2', os.O_RDWR)
|
|
fg = str(os.tcgetpgrp(tty))
|
|
tty.close()
|
|
print(fg)
|
|
for pid in pids:
|
|
try:
|
|
currStat = str(open('/proc/' + pid + '/stat', 'rb').read())
|
|
currStat = currStat.split(' ')
|
|
if int(currStat[4]) == 0:
|
|
continue
|
|
#print(currStat)
|
|
#print(fg,int(currStat[4]))
|
|
if fg == currStat[4]:
|
|
print(currStat[1])
|
|
#print( currStat )
|
|
#print(currStat[0])
|
|
major = os.major(int(currStat[6]))
|
|
minor = os.minor(int(currStat[6]))
|
|
ueventContent = open('/sys/dev/char/' + str(major) + ':' + str(minor) + '/uevent','r').read().split()
|
|
#print(ueventContent)
|
|
#print(int(currStat[4]),currStat[1])
|
|
except IOError: # proc has already terminated
|
|
continue
|
|
|
|
print(time.time()-start)
|
|
|
|
|
|
'''
|
|
Table 1-4: Contents of the stat files (as of 2.6.30-rc7)
|
|
..............................................................................
|
|
Field Content
|
|
pid process id
|
|
tcomm filename of the executable
|
|
state state (R is running, S is sleeping, D is sleeping in an
|
|
uninterruptible wait, Z is zombie, T is traced or stopped)
|
|
ppid process id of the parent process
|
|
pgrp pgrp of the process
|
|
sid session id
|
|
tty_nr tty the process uses
|
|
tty_pgrp pgrp of the tty
|
|
flags task flags
|
|
min_flt number of minor faults
|
|
cmin_flt number of minor faults with child's
|
|
maj_flt number of major faults
|
|
cmaj_flt number of major faults with child's
|
|
'''
|