¿Cómo lanzar y ejecutar un script externo en segundo plano? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo iniciar un proceso en segundo plano en Python? 7 respuestas

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 en 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 estar inactivo mientras test.py todavía se está ejecutando.

Respuestas a la pregunta(2)

Su respuesta a la pregunta