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()
Comments