Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

         

Probé estos dos métodos:

os.system("python test.py")

subprocess.Popen("python test.py", shell=True)

Ambos enfoques deben esperar hasta que test.py termine, lo que bloquea el proceso principal. Sé que "nohup" puede hacer el trabajo ¿Hay alguna forma de Python para iniciar test.py o cualquier otro script de shell y dejarlo ejecutándose en segundo plano?

Supongamos que test.py es así:

for i in range(0, 1000000):
    print i

Tanto os.system () como subprocess.Popen () bloquearán el programa principal hasta que se muestren 1000000 líneas de salida. Lo que quiero es dejar que test.py se ejecute de forma silenciosa y que solo muestre la salida del programa principal. El programa principal puede permanecer apagado mientras test.py aún se está ejecutando.

¿Fue útil?

Solución

subprocess.Popen ([" python " ;, test.py "]) debería funcionar .

Tenga en cuenta que el trabajo aún podría morir cuando se cierre la secuencia de comandos principal. En este caso, intente subprocess.Popen ([" nohup " ;, " python " ;, " test.py "])

Otros consejos

os.spawnlp(os.P_NOWAIT, "path_to_test.py", "test.py")
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top