he tenido problemas con las versiones anteriores (por ejemplo, la función se encontró también forma parte de la cadena y esas cosas .. .) así que escribí mi propia versión modificada del Maksym Kozlenko de:
#proc -> name/id of the process
#id = 1 -> search for pid
#id = 0 -> search for name (default)
def process_exists(proc, id = 0):
ps = subprocess.Popen("ps -A", shell=True, stdout=subprocess.PIPE)
ps_pid = ps.pid
output = ps.stdout.read()
ps.stdout.close()
ps.wait()
for line in output.split("\n"):
if line != "" and line != None:
fields = line.split()
pid = fields[0]
pname = fields[3]
if(id == 0):
if(pname == proc):
return True
else:
if(pid == proc):
return True
return False
creo que es más fiable, fácil de leer y tiene la opción de buscar los identificadores de proceso o nombres.
ver los ejemplos dados en https://code.google.com/p/psutil/ –