Como encerrar e se comunicar com um processo em execução infinita usando subprocess.Popen [closed]

1

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.

    
por Sudhish Puliyathamil 03.04.2018 / 21:09

0 respostas