ho questo:Attendere un certo processo (conoscendo la "PID") end
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))
Poi faccio questo:
process = get_process()
if process == None:
#do something
else:
#Wait until the process end
while is_running(process):
pass
credo che questo non è il modo migliore per aspettare il processo per terminare, ci deve essere qualche funzione di attesa o qualcosa del genere, ma non riesco a trovarlo.
di responsabilità: Il processo non è un processo figlio
Questo funziona solo per un processo figlio. Sarebbe bello se questo funzioni per qualsiasi processo. – Niko
non avrò quel problema, ma buono a sapere che dettaglio: D – Niko
Questo non funzionerà su Windows - il segnale di uccisione incondizionatamente uccide il processo inviato il segnale ([docs] (https://docs.python.org/2 /library/os.html#os.kill)). – dbn