Skip to content Skip to sidebar Skip to footer

Monitor Process In Python?

I think this is a pretty basic question, but here it is anyway. I need to write a python script that checks to make sure a process, say notepad.exe, is running. If the process is r

Solution 1:

The process creation functions of the os module are apparently deprecated in Python 2.6 and later, with the subprocess module being the module of choice now, so...

if'notepad.exe'notin subprocess.Popen('tasklist', stdout=subprocess.PIPE).communicate()[0]:
    subprocess.Popen('notepad.exe')

Note that in Python 3, the string being checked will need to be a bytes object, so it'd be

if b'notepad.exe' not in [blah]:
    subprocess.Popen('notepad.exe')

(The name of the file/process to start does not need to be a bytes object.)

Solution 2:

There are a couple of options,

1: the more crude but obvious would be to do some text processing against:

os.popen('tasklist').read()

2: A more involved option would be to use pywin32 and research the win32 APIs to figure out what processes are running.

3: WMI (I found this just now), and here is a vbscript example of how to query the machine for processes through WMI.

Solution 3:

Post a Comment for "Monitor Process In Python?"