PDA

Visualizza la versione completa : python: timeout con redirection


stirkland
11-08-2010, 16:06
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:



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()


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!!

Come fo? Grazzzie!

Loading