me trataron estos dos métodos:¿Cómo iniciar y ejecutar un script externo en segundo plano?
os.system("python test.py")
subprocess.Popen("python test.py", shell=True)
Ambos enfoques necesidad de esperar hasta test.py acabados que bloquea el proceso principal. Sé que "nohup" puede hacer el trabajo. ¿Hay alguna forma de Python para lanzar test.py o cualquier otro script de shell y dejarlo ejecutándose en segundo plano?
test.py Supongamos que es de esta manera:
for i in range(0, 1000000):
print i
Tanto os.system() o subprocess.Popen() bloqueará programa principal hasta 1000000 líneas de salida mostrada. Lo que quiero es dejar que test.py se ejecute silenciosamente y muestre solo la salida del programa principal. El programa principal puede estar en silencio mientras test.py aún se está ejecutando.
subprocess.Popen ([ "pitón", "test.py"]) acaba de lanza test.py y bloques de proceso principal por la espera de la salida de test.py. – jack
Eso solo debería ocurrir si solicita 'stdout = PIPE' también. ¿Qué versión de Python? ¿Puedes agregar una "impresión" xxx "' después de la llamada a Popen para comprobar que realmente bloquea? –
Acabo de probar el código anterior y funciona para mí con Python 2.5.2 en Windows. Tu problema debe ser otra cosa. –