''' Created on 8 Feb 2023 @author: vnc-console ''' import argparse import psutil from psutil import Process as proc def list_process(kill=False, user=None): PROCNAME = 'mentor.exe' PROCNAMED = 'declaratii.exe' USER = 'vnc-console' avr = [] for proc in psutil.process_iter(): try: if proc.name().lower() == PROCNAME: if USER in proc.username().lower(): if kill == 'me': # proc.kill() print(f'{proc.name()} pid:{proc.pid} killed!') # pid = proc.pid for _ in range(10): avr.append(proc.cpu_percent(interval=0.1)) usage = float(sum(avr))/len(avr) print(f'currently running: {proc.name()}: {proc.username()} usage: {usage}') if kill == 'all': # if usage >= 12.0: # # mnt = psutil.Process(pid=pid) print('killing') proc.kill() elif proc.name().lower() == PROCNAMED: if USER in proc.username().lower(): if kill == 'me': proc.kill() print(f'{proc.name()} pid:{proc.pid} killed!') for _ in range(10): avr.append(proc.cpu_percent(interval=0.1)) usage = float(sum(avr))/len(avr) print(f'currently running: {proc.name()}: {proc.username()} usage: {usage}') if kill == 'all': print('killing') proc.kill() except psutil.AccessDenied as exc: print(str(exc)) todo = input('press enter to exit, or --kill[me|all]') if todo == 'me' or todo == 'all': list_process(kill=todo) parser = argparse.ArgumentParser() parser.add_argument('-list', action='store_const', const=list_process, dest='cmd') parser.add_argument('--kill', type=str) args = parser.parse_args() args.cmd(args.kill) input('done, press a key to exit')