python查询进程下所有线程运行核信息

import subprocess

def core_run_info():
  out_bytes = subprocess.check_output("pgrep 'your exe comand' | xargs", shell=True)
  out_text = out_bytes.decode('utf-8')

  processId = out_text[:-1].split(' ')
  if processId[0] == '':
    print('no running  processes!!!')
    return
  print('Total [%d] processes%s'%(len(processId), processId))
  for process in processId:
    print(' ------------- processId:', process, '------------------')
    cmd = "ls /proc/" + process + "/task/ | xargs"
    tasks = subprocess.check_output(cmd, shell=True)
    task_text = tasks.decode('utf-8')

    task = task_text[:-1].split(' ')

    for taskId in task:
      cmd = "cat /proc/" + process + "/task/" + taskId + "/status | egrep 'Name|Cpus_allowed_list'| awk '{print $2 }' | xargs"    
      tasks = subprocess.check_output(cmd, shell=True)

      task_text = tasks.decode('utf-8')
      threadName = task_text.split(' ')[0]
      Cpus_allowed_list = task_text.split(' ')[1][:-1]
      print('  taskId :[ %-6s]   threadName : %-16s Cpus_allowed_list : %s'%(taskId,threadName,Cpus_allowed_list))
  return

 

posted @ 2021-03-23 16:43  Xuperior  阅读(729)  评论(0编辑  收藏  举报