Ciao amici,
ho scritto un script in python che esegue dei tools, ognuno dei quali ha un timeout prefissato. La funzione che mi eegue il comando è questa:
Ora mi trovo a dover eseguere uno di questi tools con un file rediretto in input... e questa funzione non va più: se la stringa da passare alla funzione è del tipo "comando < file" semplicemente non succede nulla!!codice:def timeout_command(command, timeout): import subprocess, datetime, os, time, signal cmd = command.split(" ") start = datetime.datetime.now() process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) while process.poll() is None: time.sleep(0.1) now = datetime.datetime.now() if (now - start).seconds > timeout: os.kill(process.pid, signal.SIGKILL) os.waitpid(-1, os.WNOHANG) return None return process.stdout.read()
Come fo? Grazzzie!

Rispondi quotando