import subprocess import time import os def get_process_info(): process_list = [] ps_output = subprocess.run(['ps', 'ax', '-o', 'pid,user,command'], capture_output=True, text=True) lines = ps_output.stdout.splitlines()[1:] for line in lines: fields = line.strip().split(maxsplit=2) pid, user, command = fields process_list.append({ 'pid': int(pid), 'user': user, 'command': command }) return process_list def main(): old_processes = set() while True: current_processes = get_process_info() current_pids = {proc['pid'] for proc in current_processes} new_pids = current_pids - old_processes if new_pids: for proc in current_processes: if proc['pid'] in new_pids and not proc['command'].startswith('ps'): print("New Process: PID: {} | User: {} | Command: {} ".format(proc['pid'], proc['user'], proc['command'])) old_processes = current_pids time.sleep(0.001) if __name__ == "__main__": main()