#! /usr/bin/env python3 # License: Public Domain import os import time os.chdir('/proc') next_data = set() while True: last_data, next_data = next_data, set() for proc in os.listdir(): try: int(proc) except ValueError: continue try: f = open(os.path.join(proc, 'stat'), 'rb') except OSError: continue with f: data = f.read().split(b' ') if data[2] == b'D': try: with open(os.path.join(proc, 'cmdline'), 'rb') as f: cmdline = repr(f.read().rstrip(b'\x00').split(b'\x00')) except OSError: cmdline = '(Unknown)' v = proc, cmdline next_data.add(v) if v in last_data: print('PID %s: %s' % v) time.sleep(10)