#!/usr/bin/env pythonimportosstart_pids=[pidforpidinos.listdir('/proc')ifpid.isdigit()]print'PIDs',str(start_pids)# we don't do an active sleep here, results in slightly increasing usage for one of your CPU coreswhileTrue:cur_pids=[pidforpidinos.listdir('/proc')ifpid.isdigit()]forpidincur_pids:ifpidinstart_pids:continuetry:cmdline=open(os.path.join('/proc',pid,'cmdline'),'rb').read().replace('\x00',' ')iflen(cmdline)==0orcmdline.startswith('bash')isTrueor \
cmdline.endswith('sh')isTrue:continuestart_pids.append(pid)outstr='NEW[%s]: '%(pid)+cmdlineprintoutstrexceptIOError:print'PID',pid,'!exist'continue