Como iniciar e executar script externo no fundo? [duplicado]
-
05-07-2019 - |
Pergunta
Esta questão já tem uma resposta aqui:
- Como iniciar um processo de fundo em Python? 7 respostas
Eu tentei estes dois métodos:
os.system("python test.py")
subprocess.Popen("python test.py", shell=True)
Ambas as abordagens necessidade de esperar até acabamentos test.py que bloqueia processo principal. Eu sei "nohup" pode fazer o trabalho. Existe uma maneira Python para test.py de lançamento ou quaisquer outros scripts shell e deixá-lo rodando em segundo plano?
test.py Suponha que é assim:
for i in range(0, 1000000):
print i
Ambos os.system () ou subprocess.popen () vai bloquear o programa principal até 1000000 linhas de saída exibidos. O que eu quero é deixar test.py é executado silenciosamente e exibir apenas a saída do programa principal. principal do programa pode quie enquanto test.py ainda está em execução.
Solução
Note-se que o trabalho ainda pode morrer quando seus principais saídas de script. Neste caso, tente subprocess.Popen(["nohup", "python", "test.py"])
Outras dicas
os.spawnlp(os.P_NOWAIT, "path_to_test.py", "test.py")