Como lançar e executar o script externo em segundo plano? [duplicado]

Esta questão já tem uma resposta aqui:

Como iniciar um processo em segundo plano no Python? 7 respostas

Eu tentei estes dois métodos:

os.system("python test.py")

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

Ambas as abordagens precisam esperar até que o test.py termine o processo principal. Eu sei que "nohup" pode fazer o trabalho. Existe uma maneira Python para lançar o test.py ou qualquer outro shell e deixá-lo rodando em segundo plano?

Suponha que test.py seja assim:

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

Ambos os.system () ou subprocess.Popen () bloquearão o programa principal até que as linhas de saída de 1000000 sejam exibidas. O que eu quero é deixar o test.py rodar silenciosamente e exibir apenas a saída do programa principal. O programa principal pode desaparecer enquanto o test.py ainda está em execução.