#!/usr/bin/env python3 from time import sleep import os import operator def pid_to_name(pid): try: with open('/proc/' + pid + '/status') as f: for line in f: return line[:-1].split('\t')[1] except FileNotFoundError: return '' while True: oom_list = [] for i in os.listdir('/proc'): if i.isdigit() is not True: continue try: with open('/proc/' + i + '/oom_score') as file: oom_score = int(file.readlines()[0][:-1]) except Exception: print('exception oom!') oom_list.append((i, oom_score)) oom_list_sorted = sorted(oom_list, key=operator.itemgetter(1), reverse=True) print("\033c") print('oom_score Pid Name') for i in oom_list_sorted[:10]: oom_score = i[1] pid = i[0] if int(oom_score) > 0: print( '{}{} {}'.format( str(oom_score).rjust(9), str(pid).rjust(7), str(pid_to_name(pid)).ljust(16) ) ) sleep(1)