psutil python process monitor restart

install psutil python 3



Monitorear el proceso en Python? (3)

Creo que esta es una pregunta bastante básica, pero aquí está de todos modos.

Necesito escribir un script python que verifique para asegurarse de que se esté ejecutando un proceso, digamos notepad.exe. Si el proceso se está ejecutando, no haga nada. Si no es así, comienza. ¿Cómo se haría esto?

Estoy usando Python 2.6 en Windows XP


Hay un par de opciones,

1: el más crudo pero obvio sería hacer algo de procesamiento de texto en contra:

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

2: Una opción más complicada sería utilizar pywin32 e investigar las API de win32 para descubrir qué procesos se están ejecutando.

3: WMI ( encontré esto ahora), y aquí hay un ejemplo de vbscript de cómo consultar la máquina para procesos a través de WMI.


Las funciones de creación de procesos del módulo os aparentemente están en desuso en Python 2.6 y posterior, con el módulo de subprocess como el módulo de elección ahora, entonces ...

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

Tenga en cuenta que en Python 3, la cadena que se va a verificar tendrá que ser un objeto de bytes, por lo que sería

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

(El nombre del archivo / proceso para iniciar no necesita ser un objeto de bytes).