Basicamente, estou tentando executar o seguinte processo:
PIPE=subprocess.PIPE
cmd2 = 'tail -0f ' + llf
pp2 = subprocess.Popen(cmd2, stdin=PIPE, stdout=PIPE, stderr=PIPE, shell=True)
em que llf
é o arquivo de log mais recente de um dispositivo e é atualizado continuamente.
Eu quero terminar este processo após 5 segundos e ler a saída dele.
Eu tentei pp2.communicate()
mas não está funcionando.
Eu tentei pp2.kill()
e depois li em pp2.stdout
, mas isso também falhou.
Em ambos os casos acima, o programa trava nas respectivas linhas.
Eu gostaria de saber porque os dois acima não estão funcionando e qual é uma alternativa adequada.