tengo esto:Esperar a que un determinado proceso (conociendo el "PID") final
def get_process():
pids = []
process = None
for i in os.listdir('/proc'):
if i.isdigit():
pids.append(i)
for pid in pids:
proc = open(os.path.join('/proc', pid, 'cmdline'), 'r').readline()
if proc == "Something":
process = pid
return process
def is_running(pid):
return os.path.exists("/proc/%s" % str(pid))
Entonces hago esto:
process = get_process()
if process == None:
#do something
else:
#Wait until the process end
while is_running(process):
pass
creo que esto no es la mejor manera de esperar el proceso para terminar, debe haber alguna función de espera o algo, pero no puedo encontrarlo.
de responsabilidad: El proceso no es un proceso hijo
Eso solo funciona para un proceso secundario. Sería genial si esto funciona para cualquier proceso. – Niko
no tendré ese problema pero es bueno saber ese detalle: D – Niko
Esto no funcionará en Windows - la señal de muerte mata incondicionalmente el proceso enviado la señal ([documentos] (https://docs.python.org/2) /library/os.html#os.kill)). – dbn